Semiconductor device and systems using the same

ABSTRACT

A semiconductor device capable of suppressing performance degradation and systems using the same are provided. The semiconductor device includes a plurality of processors CPU1 and CPU2, a scheduling device 10 (ID1) connected to the processors CPU1 and CPU2 for controlling the processors CPU1 and CPU2 to execute a plurality of tasks in real time, memories 17 and 18 accessed by the processors CPU1 and CPU2 to store data by executing the tasks, and access monitor circuits 15 for monitoring accesses to the memories by the processors CPU1 and CPU2. When an access to the memory is detected by the access monitor circuit 15, the data stored in the memory 18 is transferred based on the destination information of the data stored in the memory 18.

CROSS-REFERENCE TO RELATED APPLICATIONS

The disclosure of Japanese Patent Application No. 2018-205515 filed onOct. 31, 2018 including the specification, drawings and abstract isincorporated herein by reference in its entirety.

BACKGROUND

The present disclosure relates to a semiconductor device and a systemusing the same, and more particularly, to a semiconductor deviceincluding a plurality of masters and capable of executing a plurality oftasks in real time and a system using the same.

As a semiconductor device, a microprocessor (hereinafter, referred to asa processor), a direct memory access controller (hereinafter, referredto as a DMA controller), and a memory-mounted semiconductor device areknown. Such a semiconductor device is used, for example, in FactoryAutomation networking systems. When the processor executes apredetermined process in accordance with a program, the processoroutputs an address signal, which is hereinafter collectively referred toas an address signal, for transmitting address information and transfercontrol information, to access a memory or a peripheral circuit. Likethe processor, the DMA controller outputs an address signal to accessthe memory or peripheral circuits. In this case, the processor and DMAcontroller may be considered as a master that accesses the memory andperipheral circuits, and the accessed memory or peripheral circuits maybe considered as slaves.

In a network system, it is desired to improve the performance of theentire system (hereinafter, in this specification, both the real-timeperformance (ability to cope with more stringent timing constraints) andthe throughput performance (data transfer rate, computation capability)are collectively referred to as performance) while suppressing powerconsumption. As an effective measure for this purpose, it is consideredthat the number of processors and/or DMA controllers mounted on onesemiconductor device is increased, and the processes are operated inparallel in real time.

Techniques relating to real time are described in, for example, inJapanese unexamined Patent Application publication No. 2002-49497(hereinafter, Patent Document 1), Japanese unexamined Patent Applicationpublication No. 2004-220093 (hereinafter Patent Document 2) andInternational Publication No. 2008/023426 (hereinafter Patent Document3).

SUMMARY

In order to perform a plurality of processes in real time, a real-timeoperating system (hereinafter, referred to as a RTOS) is executed by aprocessor, and application programs (hereinafter, referred to asapplications) corresponding to the processes are executed on a RTOS. Inthis instance, the application is divided into a plurality of tasks, andthe application is executed by executing the plurality of tasks whileswitching the tasks by the RTOS. For RTOS, task switching (taskswitching) takes time. Techniques for speeding up this task switchinclude a wafer RTOS (hereinafter referred to as a HW-RTOS) thatrealizes RTOS in hardware, for example, as described in Patent Document3.

The inventors of the present invention have examined methods forshortening the task switch time and improving the real-time performanceby employing the HW-RTOS, and further improving the real-timeperformance from a viewpoint other than the task switch.

A task may be executed once its input data is determined. However, atask scheduler (hereinafter also referred to as a schedule device) thatschedules tasks cannot preferentially execute tasks for which input datahas been determined when the order of determination of input data isdifficult to predict in a plurality of tasks. As a result, theperformance of the entire system is degraded.

When the semiconductor device includes a plurality of masters, thescheduling device assigns tasks to the masters and causes the masters toexecute the tasks in parallel. However, when the number of masters issmall compared to the number of tasks that can be executed in parallel,the number of tasks that can be executed in parallel in the same timezone in the semiconductor device is limited by the number of masters, sothat the performance of the entire system is degraded.

Patent Document 1 describes a method of interrupting the processing of atask and switching the task when a predetermined time has elapsed, and amethod of switching the task by interrupting the processing by itself,for example, triggered by a frame break. In either of these methods, itis necessary to suspend the task of inputting and outputting data inorder to evaluate the current state of the input/output systems of aplurality of processes for each task, and the occurrence of theinterruption time causes a deterioration of the real-time performance.

Patent Document 2 discloses a technique in which a FIFO (First In FirstOut) type storage means is provided in an input/output section of data,and data is supplied to tasks via a FIFO type storage means. Since theFIFO type storage means needs to sequentially fetch the data from thefirst input data, when the FIFO type storage means is used as theinput/output unit of the data, the tasks cannot directly read the inputdata in a random order and/or write the direct output data in a randomorder. For example, when the input/output data must becompressed/decompressed in a certain task, the data stored in the FIFOtype storage means must be copied to a memory area which can be accessedrandomly separately, then the data must be compressed/decompressed, andthe output data must be stored in the FIFO type storage means. Theoccurrence of these copy times results in a lowering of real-timeperformance. Further, since the FIFO type storage means needs tosequentially fetch the data from the first input data, when the FIFOtype storage means is used as the input/output unit of the data, it isimpossible to change the priorities for processing a part of the datastaying in the FIFO type storage means in real time. For example, whenoutput data of a task executed by a certain device is used as input dataof a task executed by a device at another location via a communicationpath, an input/output buffer having a size (data capacity) capable ofabsorbing a data amount (differential data amount) obtained by timeintegration of a difference between a transfer rate (input/output dataamount per unit time) of input/output data that can be processed by adevice executing each task (input/output data amount per unit time) anda transfer rate (transfer data amount per unit time) limited by thecommunication path needs to be provided between a device executing eachtask and the communication path. When the FIFO type storage means isused as the input/output buffers, the priority of processing a part ofthe data retained in the FIFO type storage means cannot be changed so asto be higher within the time retained in the FIFO type storage means andthe data can be processed preferentially, so that the real-timeperformance deteriorates.

Further, in any of Patent Documents 1 and 2, the performance degradationin the case where the number of masters is small is not recognized ascompared with the task which can be executed in parallel. Similarly, inPatent Document 3 describing the HW-RTOS, it is not recognized that theperformance lowering occurs when the number of masters is small comparedto tasks that can be executed in parallel.

Other objects and novel features will become apparent from thedescription of this specification and the accompanying drawings.

The semiconductor device according to one embodiment is as follows.

That is, the semiconductor device includes a plurality of first masters,a scheduling device connected to the plurality of first masters forcontrolling the plurality of first masters to execute a plurality oftasks in real time, a memory accessed by the plurality of first mastersto store data by executing the tasks, and access monitor circuits formonitoring access to the memory by the plurality of first masters. Whenan access to the memory is detected by the access monitor circuit, thedata stored in the memory is transferred based on the destinationinformation of the data stored in the memory.

In one embodiment, networks provide systems with a plurality ofsemiconductor device connected to each other. In such systems, each ofthe plurality of semiconductor device's comprises a plurality ofmasters, a scheduling device connected to the plurality of masters forcontrolling the plurality of masters to execute the plurality of tasksin real time, a memory accessed by the plurality of masters to storedata by executing the tasks, and access monitor circuits for monitoringaccess to the memory by the plurality of masters. In the firstsemiconductor device of the plurality of semiconductor device, whenaccess to the memory is detected by the access monitor, the data storedin the memory is transferred to the second semiconductor device ofmemory specified by the destination data in the plurality ofsemiconductor device.

According to one embodiment, a semiconductor device capable ofsuppressing performance degradation and systems using the same can beprovided.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the semiconductor device of the firstembodiment and the configuration of the system using it.

FIG. 2 is a diagram showing the flow of data in the semiconductor deviceand network systems related to first embodiment.

FIGS. 3A to C are flow charts illustrating the operation of asemiconductor device related to a first embodiment.

FIGS. 4A to C are flow charts illustrating the operation of asemiconductor device related to a first embodiment.

FIG. 5 is a timing diagram of a network system related to firstembodiment.

FIG. 6 is a diagram illustrates the allocation of semiconductor devicememories related to first embodiment.

FIG. 7 is a diagram illustrates the allocation of semiconductor devicememories related to first embodiment.

FIG. 8 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 9 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 10 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 11 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 12 is the configuration of the task I/O data control register forfirst embodiment.

FIG. 13 is the configuration of the task I/O data control register forfirst embodiment.

FIG. 14 is the configuration of the task I/O data control register forfirst embodiment.

FIG. 15 is the configuration of the task I/O data control register forfirst embodiment.

FIG. 16 is a flow chart illustrating the operation of the setting in thesemiconductor device related to first embodiment.

FIG. 17 is a flow chart illustrating the operation of the setting in thesemiconductor device related to first embodiment.

FIG. 18 is a flowchart illustrating the operation of a task in asemiconductor device related to first embodiment.

FIG. 19 is a flowchart illustrating the operation of a task in asemiconductor device related to first embodiment.

FIG. 20 is a flow chart showing the transmission operation in thesemiconductor device related to first embodiment.

FIG. 21 is a flow chart showing the transmission operation in thesemiconductor device related to first embodiment.

FIG. 22 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 23 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 24 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 25 is for explaining the memory address area of the semiconductordevice related to first embodiment.

FIG. 26 is the configuration of the task I/O data control register ofthe semiconductor device related to first embodiment.

FIG. 27 is the configuration of the task I/O data control register ofthe semiconductor device related to first embodiment.

FIG. 28 is the configuration of the task I/O data control register ofthe semiconductor device related to first embodiment.

FIG. 29 is the configuration of the task I/O data control register ofthe semiconductor device related to first embodiment.

FIG. 30 is a flow chart illustrating the operation of the setting in thesemiconductor device related to first embodiment.

FIG. 31 is a receipt flow of the task input data related to firstembodiment.

FIG. 32 is a receipt flow of the task input data related to firstembodiment.

FIG. 33 is a flowchart illustrating the operation of a task in asemiconductor device related to first embodiment.

FIG. 34 is a flow chart illustrating the operation of a task in asemiconductor device related to first embodiment.

FIG. 35 is a diagram for explaining the control table related to firstembodiment.

FIG. 36 is a diagram for explaining the control table related to firstembodiment.

FIG. 37 is a diagram for explaining the control table related to firstembodiment.

FIG. 38 is a diagram for explaining the control table related to firstembodiment.

FIG. 39 is a diagram for explaining the control table related to firstembodiment.

FIG. 40 is a diagram for explaining the control table related to firstembodiment.

FIG. 41 is a diagram for explaining the control table related to firstembodiment.

FIG. 42 is a diagram for explaining the control table related to firstembodiment.

FIG. 43 is a diagram for explaining the control table related to firstembodiment.

FIG. 44 is a diagram for explaining the control table related to firstembodiment.

FIG. 45 is a diagram for explaining the control table related to firstembodiment.

FIG. 46 is a diagram for explaining the control table related to firstembodiment.

FIG. 47 is a diagram for explaining the control table related to firstembodiment.

FIG. 48 is a diagram for explaining the control table related to firstembodiment.

FIG. 49 is a diagram for explaining the control table related to firstembodiment.

FIG. 50 is a diagram for explaining the control table related to firstembodiment.

FIG. 51 is a diagram for explaining the control table related to firstembodiment.

FIG. 52 is a diagram for explaining the control table related to firstembodiment.

FIG. 53 is a diagram for explaining the control table related to firstembodiment.

FIG. 54 is a diagram for explaining the control table related to firstembodiment.

FIG. 55 is a diagram for explaining the control table related to firstembodiment.

FIG. 56 is a diagram for explaining the control table related to firstembodiment.

FIG. 57 is a timing diagram illustrating the operation of asemiconductor device in a network system related to first embodiment.

FIG. 58 is a timing diagram illustrating the operation of asemiconductor device in a network system related to first embodiment.

FIG. 59 is a timing diagram illustrating the operation of asemiconductor device in a network system related to first embodiment.

FIG. 60 is a timing diagram illustrating the operation of asemiconductor device in a network system related to first embodiment.

FIG. 61 is a diagram illustrating an operation timing when anapplication is executed as a comparative example

FIG. 62 is a schematic configuration of a semiconductor device relatedto a comparative example.

FIG. 63 is an outline of the operation of the semiconductor devicerelated to the comparative examples.

FIG. 64 is an operation timing diagram of the semiconductor device as acomparative example.

DETAILED DESCRIPTION

Embodiments of the present invention will be described below withreference to the drawings. It is to be noted that the disclosure ismerely an example, and those skilled in the art can easily conceive ofappropriate changes while maintaining the gist of the invention arenaturally included in the scope of the invention. In addition, althoughthe drawings may schematically represent the width, thickness, shape,and the like of each portion as compared with actual embodiments for thesake of clarity of explanation, the drawings are merely an example anddo not limit the interpretation of the present invention.

In this specification and each drawing, the same reference numerals areassigned to the same elements as those described above with reference tothe preceding drawings, and detailed description thereof may be omittedas appropriate.

First Embodiment

In the first embodiment, a plurality of tasks constituting anapplication are distributed to a plurality of semiconductor deviceconnected to networks, and tasks assigned to each semiconductor deviceare executed in real time. This makes it possible to suppressperformance degradation. For ease of understanding, a case where aplurality of tasks are executed in one semiconductor device withoutdistributing the tasks will be described first as a comparative example.

As an application, a program that performs a predetermined calculationon a frame received via a network and transmits the frame on which thepredetermined calculation is performed via the network will be describedas an example. The predetermined operation performed is of two types: afirst operation and a second operation. The first operation is composedof a filter operation for performing an operation between two pieces ofdata and an output operation for performing an output operation on theresult of the filter operation. The second operation is a filteroperation for performing an operation between an input operationperformed on data and two input operation results.

An operation when this application is executed by one semiconductordevice will be described with reference to FIG. 61. In FIG. 61, on theupper side of the drawing, an operation timing diagram for executing anapplication is shown. The lower part of FIG. 61 shows timing constraintsto be satisfied when this application is executed.

On the upper side of the drawing of FIG. 61, semiconductor device startstransmission and reception of a frame at a timing between the minimumtime Min and the maximum time Max of a transmission/reception startevent, and completes transmission and reception of a frame at a timingbetween the minimum time Min and the maximum time Max of atransmission/reception end event. In FIG. 61, between atransmission/reception start event and a transmission/reception endevent shown on the left side, a frame 1 (referred to as a frame in FIG.61) is received by the semiconductor device and stored in thecommunication buffer 0 in the semiconductor device. The data stored inthe communication buffers are subjected to the first calculationdescribed above, and the data is outputted to the outside of thesemiconductor device in synchronization with the SYNC0 events. On theother hand, the data inputted to the semiconductor device insynchronization with the SYNC1 events is subjected to theabove-described second calculation, and the data is stored in thecommunication buffer 1. The data stored in the communication buffer 1 isconverted into a frame 2 between the transmission/reception start eventand the transmission/reception end event shown on the right side andtransmitted. The transmitted frame 2 is received by an external deviceconnected to the network, and a predetermined calculation is performedin the same manner as the frame 1.

As shown in FIG. 61, the minimum cycle time allowed for this applicationis a period between the maximum time Max of the transmission/receptionend event and the minimum time Min of the transmission/reception startevent. The semiconductor device performs a plurality of tasks thatconstitute the application during this minimal cycle time. In FIG. 61,three tasks configuring an application are shown. That is, the firsttask is activated by the transmission/reception end event, the secondtask is activated by the SYNC1 event, and the third task is activated bythe transmission/reception end event in the same manner as the firsttask. Here, the first task is a task of copying data stored in thecommunication buffer 0 to the operation buffer 0 and performing apredetermined operation (filter operation+output operation). The secondtask is a task for performing a predetermined operation (inputoperation+filter operation) on data input to the semiconductor device,and copying the data to the communication buffers 1. The third task is atask for monitoring that a transmission/reception start event does notoccur and that a transmission/reception end event does not occur betweenthe start of the first task and the end of the second task.

The first to third tasks constituting the application have timingconstraints. Only the timing constraints 1 and 2 of the first and secondtasks will be described.

The first task is required to finish executing the task during theinterval between the transmission/reception finish event and the SYNC0event. That is, the execution time of the first task is required to bethe same as or shorter than the execution time of the first task betweenthe transmission/reception end event and the SYNC0 event. Looking at thetimings of the SYNC0 events, it is required that the outputs of thefirst tasks are valid before this SYNC0 event occurs. Similarly, thesecond task is required to be executed in the same time as or shorterthan the time between the SYNC1 event and the transmission/receptioninitiation event, and the second task is required to be executed in thesame time as or shorter than the time between the transmission/receptioninitiation event and the transmission/reception initiation event.

If the first task is not completed by, for example, the SYNC0 event, thedevice connected to the outside of the semiconductor device cannotreceive the data outputted by the semiconductor device insynchronization with the SYNC0 event, and the first task malfunctions.Similarly, if the second task is not completed before thetransmission/reception initiation event, the external device connectedto the semiconductor device through the network cannot receive the datainputted by the semiconductor device and malfunctions. That is, thefirst task has a timing constraint of completing the process before theSYNC0 event occurs. Similarly, the second task has a timing constraint 2of completing the processing before the occurrence of thetransmission/reception start event.

FIG. 62 shows a schematic configuration of a semiconductor deviceaccording to a comparative example. FIG. 62 shows a schematicconfiguration of the semiconductor device 450 of the comparativeembodiment and a flow of data when the first operation is performed.

Frames are transmitted from the data-transmitting device 456 to thesemiconductor device 450 via networks 459. The frame is composed of aplurality of transmission blocks, in this figure, transmission blocks 0to 4. The transmission blocks 0 to 4 stored in the transmission buffers458 are transmitted to the networks 459 as frames by the communicationdevice 457.

The semiconductor device 450 includes a communication device 451, ascheduling device 452, two processors CPU1, a CPU2, a receive buffer453, an arithmetic buffer 454, and an output device 455. Thecommunication device 451 receives frames supplied via networks 459. Thecommunication device 451 includes a DMA controller, and the DMAcontroller transfers the frame from the communication device 451 to thereception buffers 453 as reception blocks 0 to 4.

The processor CPU1 performs a filter operation between the receivingblock 0 and the receiving block 1, and performs a filter operationbetween the receiving block 1 and the receiving block 2. Similarly, theprocessor CPU2 performs a filter operation between the receiving block 2and the receiving block 3, and performs a filter operation between thereceiving block 3 and the receiving block 4. The results of the filteroperations performed by the processors CPU1 and CPU2 are stored in theoperation buffers 454 as blocks f 01, f 12, f 23, and f 34. Theprocessors CPU1 and CPU2 perform the output operation on the blocks f01, f 12, f 23, and f 34, which are the results of the filter operation,and output them via the output device 455.

A semiconductor device 450 operation scheduling device 452 assigns thefirst task described above to the processor CPU1 and CPU2 to cause theprocessor to perform the first operation. FIG. 63 is a diagram showingan outline of the operation of the semiconductor device 450. In FIG. 63,a flow chart showing the operation of the semiconductor device 450 isshown on the left side of the drawing. On the right side of the drawing,changes in the amount of data due to the first calculation are shown.Here, the sizes of the reception blocks 0 to 4 are assumed to be 1024bytes (1 K bytes).

When a frame is received in the receive buffers 453, the schedulingdevice 452 detects frame receive termination events and operates theprocessors CPU1 and CPU2 in step SCP0. At this time, the receptionbuffer 453 stores the reception blocks 0 to 4. In step SCP1, theprocessors CPU1 and CPU2 perform filter operations. That is, theprocessors CPU1 and CPU2 perform the filter operation by inputting thereception data of two consecutive reception blocks. At this time, thedata inputted to the processors CPU1 and CPU2 are the size 2 K bytescorresponding to the two reception blocks. The size of the output dataresulting from the filter operation obtained by performing the filteroperation is the size of the output data in 1 K bytes.

Next, in step SCP2, the processors CPU1 and CPU2 perform an outputtingoperation. That is, the processors CPU1 and CPU2 perform the outputoperation using the output data, which is the result of the filteroperation, as input data. The size of the output data of the outputoperation as a result of the output operation is the size of 1 K bytes.

In step SCP3, the scheduling device 452 determines whether or not theoperation to be executed has been completed by the SYNC 0 event, and ifthe operation to be executed has been completed, the output device 455is controlled so as to validate the output data. On the other hand, whenthe operation to be executed is not completed, the process returns tostep SCP1, and step SCP1-SCP3 is repeated until the operation to beexecuted is completed.

In the SCP0 of steps, all of the reception data of the reception blocks0 to 4 are stored in the reception buffers 453, so that four firstoperations can be executed in parallel temporally. That is, the fourfirst tasks can be executed in parallel in time. However, thesemiconductor device 452 is provided with fewer than four tasks that canbe executed in parallel, two processors CPU1 and CPU2. As a result, itbecomes difficult to execute the first operation so as to satisfy theabove-mentioned timing constraint 1.

FIG. 64 is a timing chart when the first calculation is performed on thereceived data of the receiving blocks 0 to 4 by the semiconductor device450. This figure is similar to the operation timing diagram shown on theupper side of the drawing in FIG. 61, but the operation of the processorCPU1 and the CPU2 are shown in detail in FIG. 64. In the figure, thereception buffer 453 is divided into four bankways 453_0 to 453_3, andthe operation buffer 454 is also divided into four bankways 454_0 to454_3.

Here, the code rule assigned to the processor used in FIG. 64 will bedescribed. In the drawings to be described later, reference numerals areassigned in accordance with the rules described herein.

In the sign shown in the parenthesis after the sign of the processor,the sign f or fg shown on the left indicates the operation performed bythe processor. That is, the symbol f indicates the filter operation, andthe symbol fg indicates the outputting operation. Two numbers to theright of the symbol f or fg indicate the number of the target block.Further, a symbol R on the right side of the symbol − indicates a readoperation, and a symbol W indicates a write operation of an operationand an operation result.

In FIG. 64, the operations of the processors CPU1 and CPU2 and the bankways to be read and written caused by the operations are depicted in thesame row.

For example, the symbol CPU1(f01-R) indicates that the processor CPU1performs the operation of reading the reception block 0 and thereception block 1 from the bankways 453_0 and 453_1 of the receptionbuffers 453 for the filter operation. CPU1(f01-W) indicates that theprocessor CPU1 performs an operation of performing a filter operationbetween the reception block 0 and the reception block 1 and writing theresult of the filter operation to the bank way 454_0 of the operationbuffers 454.

The symbol CPU1(fg01-R) indicates that the processor CPU1 performs anoperation of reading the result of the filter operation performedbetween the reception block 0 and the reception block 1 from the bankway454_0 of the operation buffers 454 for the outputting operation.Further, CPU1(fg01-W) indicates that the processor CPU1 performs anoutput operation on the result of the filter operation performed betweenthe reception block 0 and the reception block 1, and writes the outputoperation to the bank way 454_2 of the operation buffer 454_0.

In the comparative embodiment, as shown in FIG. 64, in the periods T 1and T 2, the processors CPU1 and CPU2 can read out the reception blocks0 and 1 and the reception blocks 2 and 3, perform the filter operation,and read out the filter operation result, write it into the outputoperation and operation buffers 454 in the period T 3. That is, byassigning and executing the first tasks to the processors CPU1 and CPU2,respectively, the filter operation and the outputting operation for thehead blocks in the frame can be executed. Thus, the results of the twopower operations can be obtained before the SYNC0 events occur. However,until the filter operation and the output operation of the processorsCPU1 and CPU2 for the first block are completed, the filter operationand the output operation based on the remaining blocks in the frame arenot performed, and the operation for the remaining blocks will startfrom the time T 4. As a result, the calculation of the reception blocksconstituting the frame is not performed in time before the SYNC eventsoccur, and the timing constraint 1 is violated. In order to preventviolations of the timing constraint 1 from occurring, it is conceivableto slow down the generation of SYNC0 events, for example. Slowing theincidence of SYNC0 events will degrade the performance of the entiresystem.

FIG. 1 is a diagram showing a configuration of a semiconductor devicerelated to first embodiment and a system using the same. In the figure,1 illustrates a network system. The network system 1 includes a datatransmission device for transmitting data, a plurality of semiconductordevice, and a network line connecting the data transmission device and aplurality of semiconductor device. To avoid complicating the drawing, itis illustrated that the network system comprises a data-transmittingdevice 3 and three semiconductor device 2_1 to 2_3. Of course, thenumber of the semiconductor device and the number of the datatransmitting device included in the network system is not limited tothis number.

Although not particularly limited, in the first embodiment, the datatransmitting device 3 and the semiconductor device 2_1 to 2_3 areconnected in a daisy chain manner. That is, the data transmitting device3 and the semiconductor device 2_1 (first semiconductor device) areconnected by the network transmission line 4_1, the semiconductor device2_1 and the semiconductor device 2_2 (third semiconductor device) areconnected by the network line 4_2, and the semiconductor device 2_2 andthe semiconductor device 2_3 (second semiconductor device) are connectedby the network line 4_3.

The transmission data transmitted from the data transmission device 3 tothe network line 4_1 includes an identifier for specifying thesemiconductor device to be received. Each of the semiconductor device2_1 to 2_3 receives the transmission data when the identificationinformation included in the transmission data matches the identificationinformation specifying its own station. On the other hand, when theidentification information included in the transmission data does notcoincide with the identification information of the local station (whenthe identification information does not coincide), the suppliedtransmission data is transmitted to the semiconductor device of the nextstage through the network line. For example, if the transmission dataincludes an identity that identifies semiconductor device 2_1, thetransmission data is received by semiconductor device 2_1. On the otherhand, when the identification information included in the transmissiondata does not coincide with the identification information of thesemiconductor device 2_1, the semiconductor device 2_1 transmits thesupplied transmission data to the semiconductor device 2_2 and 2_3 viathe network line 4_2. In this way, the transmitted data will be receivedby the semiconductor device specified by the identity informationcontained in the transmitted data. The data transmission device 3includes the identification information specifying all the semiconductordevice 2_1 to 2_3 in the transmission data, so that all thesemiconductor device 2_1 to 2_3 can receive the same transmission data.

When the semiconductor device 2_1 to 2_3 transmit data to the datatransmission device 3 or another semiconductor device, the semiconductordevice 2_1 to 2_3 transmit the data including the identificationinformation specifying the semiconductor device to be received or thedata transmission device 3. This allows the semiconductor device totransmit data to the data transmitting device 3 or other semiconductordevice. In this instance, the semiconductor device that transmits thedata transmits the data including the identification information thatspecifies the own station and the identification information. As aresult, the data transmitting device 3 or other semiconductor devicethat has received the data can specify the semiconductor device that hastransmitted the received data.

In the first embodiment, the semiconductor device 2_1 to 2_3 and thedata-transmitting device 3 are connected in a daisy chain, but thepresent invention is not limited thereto. That is, a bus-shaped networkconnection or a ring-shaped network connection may be used in which thedata transmitting device 3 and the data transmitting semiconductordevice 2_1 to 2_3 are connected to one network transmission line.Alternatively, network lines may be provided radially from thedata-transmitting device 3, and a semiconductor device may be connectedto each network transmission line.

In the first embodiment, the semiconductor device 2_1 to 2_3 havesimilar configurations. Therefore, here, the entire configuration of thesemiconductor device 2_1 to 2_3 will be described as representatives ofthe semiconductor device 2_1, and the differences will be describedlater.

The semiconductor device 2_1 includes a communication device 5_1, ascheduling device 10 (ID1), two processors CPU1 and CPU2, an addresstranslation circuit 13, a bus switch 14, a monitor circuit (hereinafter,also referred to as a memory access monitor circuit) 15, and memories 17and 18. The communication device 5_1 includes Ethernet PHY circuits(Ethernet PHY) 6_1 and 6_2, an Ethernet switch (Ethernet Switch) 7, anEthernet MAC (Ethernet MAC) 8, and a timer 9.

The Ethernet PHY circuit 6_1 is an interface circuit connected betweenthe network transmission line 4_1 and the Ethernet switch 7, and theEthernet PHY circuit 6_2 is an interface circuit connected between thenetwork line 4_2 and the Ethernet switch 7. The Ethernet switch 7 is aswitch circuit for selectively connecting between the Ethernet PHYcircuit 6_1 and the Ethernet MAC8, between the Ethernet PHY circuit 6_2and the Ethernet MAC8, or between the Ethernet PHY circuits 6_1 and 6_2.The Ethernet MAC8 is supplied with identification information forspecifying the semiconductor device 2_1 from the scheduling device 10(ID1), although the identification information is not particularlylimited. Here, the symbol ID1 indicates identification information (ID)for specifying the semiconductor device 2_1.

The Ethernet MAC8 is supplied with data from the Ethernet PHY circuits6_1 and 6_2 via the Ethernet switch 7, and when the supplied dataincludes identification information that matches the identificationinformation (ID1), the supplied data is supplied to the schedulingdevice 10 (ID). When the identification information included in thesupplied data does not match the identification information ID1, theEthernet switch 7 connects the Ethernet PHY circuits 6_1 and 6_2. Thus,when the data supplied to the semiconductor device 2_1 via the networktransmission line 4_1 or 4_2 has identification information that matchesthe identification information (ID1), the supplied data is supplied tothe scheduling device 10 (ID1). On the other hand, when theidentification information included in the supplied data does not matchthe identification information (ID1), the data supplied from the networktransmission line 4_1 is transmitted to the network line 4_2, and thedata supplied from the network line 4_2 is transmitted to the networkline 4_1.

The Ethernet MAC8 transmits data from the scheduling device (ID1) to thenetwork transmission line 4_1 or 4_2. Although not particularly limited,the scheduling device 10 (ID1) supplies data to which the identificationinformation (ID1) is added. The Ethernet MAC8 controls the Ethernetswitch 7 so that data to be transmitted is supplied to the Ethernet PHYcircuit 6_1 when transmitting data to the data transmitting device 3,and controls the Ethernet switch 7 so that data to be transmitted issupplied to the Ethernet PHY circuit 6_2 when transmitting data to thesemiconductor device 2_2 or 2_3.

The Ethernet MAC8 further includes DMA controllers that function asmasters. When data from the network transmission line 4_1 or 4_2 istransmitted to the scheduling device 10 (ID1) and when data istransmitted to the network line 4_1 or 4_2, data is transferred by thebuilt-in DMA controller. The semiconductor device 2_1 includes twoprocessors CPU1 and CPU2 as masters, and the DMA controller describedabove. In the following discussion, when distinguishing between masters,the processors CPU1 and CPU2 are referred to as first masters, and theDMA controllers are referred to as second masters.

The timer 9 is connected to the Circuit MAC8 and controls thesemiconductor device 2_1 to 2_3 and the data-transmitting device 3 sothat the time is the same. The time information synchronized between thesemiconductor device 2_1 to 2_3 and the data transmitting device 3 issupplied from the timer 9 to the schedule device 10 (ID1), and the timeinformation is the same between the schedule device in each of thesemiconductor device 2_1 to 2_3.

The scheduling device 10 (ID1) includes a task input/output data controlcircuit 11 and a task input/output data control register 12. Thescheduling control circuit 10 (ID1) is connected to the Ethernet MAC8,the processor CPU1, the CPU2, the address translation circuit 13, andthe monitor circuit 15. The ID1 10 assigns tasks to the processors CPU1and CPU2, and controls the processors CPU1 and CPU2 to execute theassigned tasks. The ID1 10 controls the DMA controller in the EthernetMAC8. Since the input/output data control circuit 11 and the taskinput/output data control register 12 will be described later, they willnot be described here.

The address conversion circuit 13 converts the address signals Ad_1,Ad_2, and Ad_D from the processors CPU1 and CPU2 and the taskinput/output data control circuit 11 based on the conversion informationCNV from the scheduling device 10 (ID1), and outputs the convertedaddress signals Add_1, Add_2, and Add_D to the bus switch 14.

The bus switch 14 is a 3 master/8 slave bus switch. The bus switches 14change the connections between the three masters and the eight slavesaccording to the bus control data BSCs from the scheduling device 10(ID1). The three masters here correspond to the DMA controllers in theprocessor CPU1, the CPU2 and the Ethernet MAC8, and the eight slavescorrespond to the eight memory bankways constituting the memories 17 and18.

The memory 17 is configured by four memory bankways 17_0 to 17_3, andthe memory 18 is also configured by four memory bankways 18_0 to 18_3.That is, the address area of the memory is divided into four addressareas, and the divided four address areas are the memory bankways 17_0to 17_3. Similarly, the memory 18 is divided into four address areas,and the divided address areas are the memory bankways 18_0 to 18_3.Hereinafter, the memory bankway is also referred to as a bankway.

The bus switch 14 supplies the post-conversion address signal Add_1from, for example, the processor CPU1 to the bank way 18_0, thepost-conversion address signal Add_2 from the processor CPU2 to the bankway 18_1, and the post-conversion address signal Add_D from the DMAcontroller to the bank way 17_0 in accordance with the bus controlinformation BSC. These bankways 18_0, 18_1 and 17_0 are read from orwritten to by the processor CPU1, the CPU2 and the DMA-controller. Thescheduling device 10 (ID1) can arbitrarily switch the slavescorresponding to the masters according to the bus control data BSCs.

The monitor 15 monitors the post-conversion address signals Add_1,Add_2, and Add_D supplied from the bus switch 14 to the bank ways 17_0to 17_3 and 18_0 to 18_3, and supplies the monitoring result to thescheduling device 10 (ID1). In this specification, the post-conversionaddress signal means both an address signal for specifying a specificaddress and a control signal (transfer control information) forinstructing reading or writing to an address specified by the addresssignal.

The semiconductor device 2_2 includes identification information (ID2)that differs from the semiconductor device 2_1 as identificationinformation for specifying the semiconductor device 2_2 by thescheduling device 10 (ID2). As a result, the communication device 5_2 inthe semiconductor device 2_2 outputs data including the identificationinformation (ID2) from the network transmission line to the schedulingdevice 10 (ID2). The data transmitted from the communication device 10(ID2) to the network transmission line includes the identificationinformation (ID2). Similarly, semiconductor device 2_3 hasidentification information (ID3) different from semiconductor device 2_1and 2_2 as identification information specifying semiconductor device2_3 by Schedule device 10 (ID3). As a result, the communication device5_3 in the semiconductor device 2_3 outputs data including theidentification information (ID3) from the network transmission line tothe scheduling device 10 (ID3). The data transmitted from thecommunication device 10 (ID3) to the network transmission line includesthe identification information (ID3).

Similar to the comparative example, the operation of the semiconductordevice 2_1 to 2_3 related to the first embodiment and the operation ofthe network system 1 will be outlined by taking an example in whichoperations are performed on the transmitting blocks 0 to 4 as anexample. FIG. 2 is a diagram showing the flow of data in a semiconductordevice and a network system related to the first embodiment. FIGS. 3 and4 are flowcharts showing the operation of the semiconductor devicerelated to the first embodiment. Here, FIGS. 3(A), (B) and (C) show theoperation of semiconductor device 2_1 and 2_3, and FIGS. 4(A), (B) and(C) show the operation of semiconductor device 2_2 and 2_3.

As shown in FIG. 2, the data transmission device 3 includes acommunication device 3_1 and transmission buffers 3_2. Similarly to thetransmission buffer 458 shown in FIG. 62, the transmission blocks 0 to 4are stored in the transmission buffer 3_2, and are transmitted to thenetwork line 4_1 by the communication device 3_1.

Both semiconductor device 2_1 and 2_2 receive the transmission blocks 0to 4 transmitted from the data transmission device 3. In thesemiconductor device 2_1 and 2_2, the memory 17 is used as a receivingbuffer, and the memory 18 is used as a transmitting buffer or anarithmetic buffer. In the semiconductor device 2_1, the DMA controllerincluded in the communication device 5_1 transfers the receivedtransmission blocks 0 to 4 as the reception blocks 0 to 4 to the memory17, and stores the DMA controller in the reception buffer 17. Similarly,in the semiconductor device 2_2, DMA controllers built in thecommunication device 5_1 transfer the received transmission blocks 0 to4 to the memories 17 as the reception blocks 0 to 4, and store the DMAcontrollers in the reception buffers 17.

In semiconductor device 2_1, the scheduling device 10 (ID1) controls theprocessors CPU1 and CPU2 so that a task for executing the filteroperation A (task for filter operation A) is allocated to the processorCPU1 between the receiving blocks 0 and 1, and a task for executing thefilter operation A between the receiving blocks 2 and 3 is allocated tothe processor CPU2. On the other hand, in semiconductor device 2_2, thescheduling device 10 (ID2) controls the processors CPU1 and CPU2 suchthat a task for executing the filter operation B (task for filteroperation B) between the receiving blocks 1 and 2 is allocated to theprocessor CPU1, and a task for filter operation B for executing thefilter operation B between the receiving blocks 3 and 4 is allocated tothe processor CPU2.

In semiconductor device 2_1 and 2_2, the monitor 15 monitors the writingof the received blocks to the memories 17. The semiconductor device 2_1and 2_2 wait in steps S101 and S211 until the operation starts (stepsS100 and S200 in FIGS. 3(A) and 4(A)), the reception blocks 0 to 4constituting the frame are written in the memories 17, and the framereception end events occur. When frame reception termination eventsoccur, steps S102 (FIG. 3(A)) and S202 (FIG. 4(A)) are executed insemiconductor device 2_1 and 2_2. That is, tasks are started insemiconductor device 2_1 and 2_2.

In step S102, the processors CPU1 and CPU2 in the semiconductor device2_1 execute the filter operation A using the reception data of twoconsecutive reception blocks as input data, and write the filteroperation results as the transmission blocks f 01 and f 02 in thememories 18 serving as transmission buffers. Similarly, in step S202,the processors CPU1 and CPU2 in the semiconductor device 2_2 execute thefilter operation B using the reception data of two consecutive receptionblocks as input data, and write the result of the filter operation asthe transmission blocks f 12 and f 34 in the memories 18 serving astransmission buffers.

In semiconductor device 2_1 and 2_2, the scheduling device 10 (ID1) and10 (ID2) starts transmitting data stored in the memory 18, which is atransmission buffer, in steps S110 and S210 of FIGS. 3(B) and 4(B). Thatis, the scheduling device 10 (ID1) and 10 (ID2) monitor accesses to thememories 18 by the processors CPU1 and CPU2 by the monitor circuits 15.By monitoring, it is determined whether or not the size of theuntransmitted data stored in the memory 18 has reached a predeterminedthreshold value (data amount). Here, the predetermined threshold is thesize of data for one frame. When the size of the untransmitted datastored in the memory 18 reaches one frame, the process shifts from stepsS111 and S211 to steps S112 (FIG. 3(B)) and S212 (FIG. 4(B)).

In the semiconductor device 2_1, in step S112, the DMA controller builtin the communication device 5_1 transmits the operation result of thefilter operation A stored in the memory 18 to the semiconductor device2_3. Similarly, in step S212, the DMA controller included in thecommunication device 5_2 transmits the operation result of the filteroperation B stored in the memory 18 to the semiconductor device 2_3 instep S212. That is, in each of the semiconductor device 2_1 and 2_2,when the untransmitted data reaches predetermined threshold values, theuntransmitted data is automatically transmitted to the semiconductordevice 2_3. In this instance, the semiconductor device 2_1 and 2_2transmit the data including the identification information (ID3)specifying the semiconductor device 2_3 and the identificationinformation (ID1 and ID2) of the semiconductor device 2_1 and 2_2 as thetransmission sources.

In the semiconductor device 2_3, the scheduling device 10 (ID3) assignstasks (task for output operation A and task for output operation B) forperforming the output operation A and the output operation B using theoperation results of the filter operations A and B as input data to theprocessors CPU1 and CPU2.

In the semiconductor device 2_3, the process starts in steps S310 (FIG.3(C)) and 320 (FIG. 4(C)). That is, the scheduling device 10 (ID3)monitors accesses to the memories 17 constituting the reception buffersby using the monitor circuits 15. The scheduling device 10 (ID3)monitors the non-transmitted data transmitted from the semiconductordevice 2_1 and 2_2 to the semiconductor device 2_3 as reception blocks f01, f 12, f 23, and f 34 stored in the memories 17 constituting thereception buffers by the monitor circuits 15. By this monitoring, thesemiconductor device 2_3 waits in steps S311 (FIG. 3(C)) and S321 (FIG.4(C)) until the input data for one frame is stored.

When the input data for one frame is stored in the memory 17, insemiconductor device 2_3, the scheduling device 10 (ID3) starts theoutput operation A task and the output operation B task for theprocessors CPU1 and CPU2. That is, the scheduling device 10 (ID3) causesthe processor CPU1 to execute the outputting operation A on thereception blocks f 01 and f 12 received from the semiconductor device2_1. The scheduling device (ID3) causes the processor CPU2 to executethe outputting operation B on the reception blocks f 23 and f 34received from the semiconductor device 2_2. The operation results fg01,the operation results fg23, the operation results fg12 and the operationresults fg34 of the output operations A and B are written by theprocessors CPU1 and CPU2 into the memories 18 constituting the transmitbuffers, and are supplied to the output device. Although notparticularly limited, the outputting device transmits the suppliedoperation result to the data transmitting device 3.

In the semiconductor device 2_3, as shown in FIG. 3(C) and FIG. 4(C), insteps S313 and S323, it is determined whether or not the outputoperations A and B to be executed are completed before the SYNC0 eventsoccur, and when the output operations A and B are not completed, theprocess returns to steps S311 and S321, and the steps are repeated. Whenthe output operations A and B to be executed are completed, the outputdevice is validated and the output data is validated in steps S314 andS324.

In this manner, in the first embodiment, the filter operations A and Bare performed in parallel in the semiconductor device 2_1 and 2_2, andwhen the filter operation result exceeds a predetermined threshold, theidentification information including the identification information ofthe semiconductor device 2_3 is automatically transmitted. In thesemiconductor device 2_3, when the filter operation results from thesemiconductor device 2_1 and 2_2 are stored in the reception buffers bythe sizes required for executing the output operation, the task for theoutput operation A and the task for the output operation B arepreferentially started.

That is, tasks exceeding the number of processors included in onesemiconductor device are distributed and allocated to a plurality ofsemiconductor device. As a result, tasks exceeding the number ofprocessors can be executed in parallel, and performance degradation canbe suppressed.

FIG. 5 is a timing diagram of a network system related to firstembodiment. FIG. 5 is similar to FIG. 64 described in ComparativeExample 1. In FIG. 5, the memory 18 constituting the transmission buffercorresponds to the operation buffer shown in FIG. 64. In the firstembodiment, as shown in FIG. 5, the operation related to the filteroperation in the periods T 1 and T 2 is executed by the semiconductordevice 2_1. The operation related to the filter operation in the periodsT 4 and T 5 is shifted to the semiconductor device 2_2 and executed bythe semiconductor device 2_2. Further, the operation related to theoutputting operation in the periods T 3 and T 6 is shifted to thesemiconductor device 2_3 and executed by the semiconductor device 2_3.

In the comparative examples, since the operation related to the filteroperation executed in the periods T 4 and T 5 is shifted to thesemiconductor device 2_2, the operation related to the filter operationcan be executed in the periods T 1 and T 2 in the semiconductor device2_2. In addition, in the comparative examples, since the operationrelated to the output operation executed in the periods T 3 and T 6 isshifted to the semiconductor device 2_3, the semiconductor device 2_3can execute the operation related to the shifted output operation afterthe periods T 1 and T 2. This makes it possible to satisfy the timingconstraint 1.

First, allocation of the memories 17 and 18 in the semiconductor device2_1 to 2_3 will be described. FIGS. 6 and 7 are diagrams for explainingthe allocation of memories of the semiconductor device related to thefirst embodiment. FIG. 6 shows the allocation of the memories 17 and 18of semiconductor device 2_1 and 2_2, and FIG. 7 shows the allocation ofthe memories 17 and 18 of semiconductor device 2_3.

In semiconductor device 2_1 and 2_2, as shown in FIG. 6, the memories 17are allocated to address areas of logical addresses 00000 H (H indicateshexadecimal notation; hereinafter, the same) to 0FFFFH. Each of thebankways 17_0 to 17_3 is allocated to the address area so as to have anaddress area of 1 KB. On the other hand, the memories 18 of thesemiconductor device 2_1 and 2_2 are allocated to the address areas ofthe logical addresses 10000 H to 1FFFFH. Each of the bankways 18_0 to18_3 is allocated to the address area so as to have an address area of0.25 KB.

In the semiconductor device 2_3, as shown in FIG. 7, the memories 17 areallocated to address areas of logical addresses 00000 H to 0FFFFH, andthe bankways 17_0 to 17_3 are allocated to the address areas so as tohave address areas of 0.25 KB, respectively. On the other hand, thememories 18 of the semiconductor device 2_3 are allocated to the addressareas of the logical addresses 10000 H to 1FFFFH, and the bankways 18_0to 18_3 are allocated to the address areas so as to have address areasof 1 KB, respectively.

That is, in the semiconductor device 2_1 and 2_2, the bank way isswitched in units of 1 KB in the memory 17 constituting the receptionbuffer, and the bank way is switched in units of 0.25 KB in the memory18 constituting the transmission buffer. On the other hand, in thesemiconductor device 2_3, in the memory 17 constituting the receptionbuffer, the bank way is switched in units of 0.25 KB, and in the memory18 constituting the transmission buffer, the bank way is switched inunits of 1 KB. (Memory address area of semiconductor device 2_1 and 2_2)FIGS. 8 to 11 are diagrams illustrating a memory address area of asemiconductor device related to a first embodiment. Here, FIG. 8 showsthe address area of the memory 17 in the semiconductor device 2_1corresponding to the task for the filter operation A, and FIG. 9 showsthe address area of the memory 18 in the semiconductor device 2_1corresponding to the task for the filter operation A. FIG. 10 shows anaddress area of the memory 17 in the semiconductor device 2_2corresponding to the task for the filter operation B, and FIG. 11 showsan address area of the memory 18 in the semiconductor device 2_2corresponding to the task for the filter operation B.

When the semiconductor device 2_1 receives the data from the datacommunication device 3, the communication device 5_1 writes the receiveddata in the blocks 0 to 4 of the bankways 17_0 to 17_3 constituting thememories 17 of the semiconductor device 2_1, as shown in FIG. 8. Theprocessor CPU1 of semiconductor device 2_1 reads the data stored inblock 0 and block 1, and the processor CPU2 reads the data stored inblocks 2 and 3. The processor CPU1 executes the filter operation Abetween the data read from the block 0 and the data read from the block1. Similarly, the processor CPU2 performs the filter operation A betweenthe data read from the block 2 and the data read from the block 3. Thedata stored in the block 4 is data to be calculated in the followingfilter operation A.

The processor CPU1 of the semiconductor device 2_1 writes the operationresult obtained by the filter operation A to the blocks 0 to 3 of thebankways 18_0 and 18_1 as shown in FIG. 9. On the other hand, theprocessor CPU2 writes the operation result obtained by the filteroperation A to the blocks 4 to 7 of the bankways 18_2 and 18_3 as shownin FIG. 9. In the semiconductor device 2_1, the size of the block of thememory 17 is 1 KB, and the size of the block of the memory 18 is 0.25KB.

FIG. 10 is similar to FIG. 8, and FIG. 11 is similar to FIG. 9. Thecommunication device 5_2 in the semiconductor device 2_2 writes thereceived data into the blocks 0 to 4 in the bankways 17_0 to 17_3 of thememory 17, as shown in FIG. 10. The processor CPU1 of semiconductordevice 2_2 reads the data from blocks 1 and 2 and performs the filteroperation B. The processor CPU2 also reads the data from blocks 3 and 4and performs the filter operation B. Again, the data stored in block 0indicates data used in other operations.

The processor CPU1 of the semiconductor device 2_2 writes the operationresult obtained by the filter operation B to the blocks 0 to 3 of thebankways 18_0 and 18_1 as shown in FIG. 11. On the other hand, theprocessor CPU2 writes the operation result obtained by the filteroperation B in the blocks 4 to 7 of the bankways 18_2 and 18_3 as shownin FIG. 11. Also in the semiconductor device 2_2, the size of the blockof the memory 17 is 1 KB, and the size of the block of the memory 18 is0.25 KB.

In FIGS. 8 to 11, the address area is indicated by a physical address.Address signals from the processors CPU1 and CPU2 are converted intological addresses by the address converter 13. The conversion at thistime is performed in accordance with the conversion equation shown inFIGS. 8 to 11 (for example, in FIG. 8, the logical address of the blockm=2000 H+400 H×m), and the physical address from the processor CPU1,CPU2is converted into the logical address specifying the block.

FIGS. 12 to 15 are diagrams illustrating the configuration of the taskinput/output data control registers of the semiconductor device 2_1 and2_2 related to the first embodiment. The task input/output data controlregister 12 includes a plurality of registers. That is, the taskinput/output data control register 12 includes a transfer monitor area 0setting register: 700_0, a transfer monitor area 1 setting register:700_1, a task input/output data transfer control register 0: 701_0, atask input/output data area 0 setting register: 702_0, a taskinput/output data area 1 setting register: 702_1, and a task startcondition setting register 0: 703_0, where a symbol between a name and asymbol indicates a break. Here, FIGS. 12 and 13 illustrate a taskinput/output data control register 12 provided in semiconductor device2_1 and show a state configured to perform the operation described in<Outline of Operation>. FIGS. 14 and 15 show the task input/output datacontrol register 12 provided in the semiconductor device 2_2, which isset to perform the operation described in.

With the task input/output data control register 12 shown in FIGS. 12and 13 as an example, each register constituting the task input/outputdata control register 12 will be described.

The transfer monitor area 0 setting register: 700_0 is a register forsetting constraints on the block allocation order when the memory 17constituting the reception buffer is used as a target memory and when anaccess to the target memory is detected or/and a task using the targetmemory as a task input/output data area is started. The transfer monitorarea 1 setting register: 700_1 is a register for setting constraints onthe block allocation order when the memory 18 constituting thetransmission memory is set as the target memory and an access to thetarget memory is detected or/and a task using the target memory as atask input/output data area is started. When an access to the targetmemory is detected by the transfer monitor area 0 setting register:700_0 and the transfer monitor area 1 setting register: 700_1, and/orwhen a task using the target memory as a task input/output data area isstarted, block allocation is performed as described in the respective“block allocation constraints of the target area”. That is, in thememory 17, the blocks are allocated in order from the block 0 whileswitching the slaves in block units in order from the bankway 17_0. Thatis, it is set to select the slave from the bank way 17_0 in order, andto store the reception blocks from the reception block 0 in order. Onthe other hand, as described in “Block Allocation Constraints of theTarget Area”, the memory 18 is set so as to be different from the memory17.

The transfer monitor area 0 setting register: 700_0 is set so that blockallocation is automatically performed at the time of first writing(writing) to a block unallocated area in the memory 17 which is thetarget memory. On the other hand, automatic block allocation is not setin the transfer monitor area 1 setting register 700_1. The number ofbytes per block of the target area of the transfer monitor area 0setting register 700_0 is set to 1 KB (1024 bytes), and the number ofbytes per block of the target area of the transfer monitor area 1setting register 700_1 is set to 0.25 KB (256 bytes). In the transfermonitor area 0 setting register: 700_0 and the transfer monitor area 1setting register: 700_1, the number of bytes per flag of the target areais set to 1. The flags will be described later with reference to FIGS.35 to 56 and the like.

In the task input/output data transfer control register 0: 701_0, a read(read) detection area (transfer destination), a read task (transferdestination), a write detection area (transfer source), a write task(transfer source), the maximum number of transfer bytes per frame, atransfer start trigger 1 and a transfer start trigger 2 are set. Here,the transfer monitor area 0 of the semiconductor device 2_3 of thetransfer destination is set in the read detecting area (transferdestination). That is, in the read detecting area (transferdestination), identification information specifying the semiconductordevice 2_3 of the transfer destination and address informationspecifying the address area of the transfer monitor area 0 are set. Atask for the output operation A, which is a task executed by thesemiconductor device 2_3, is set as the read task (transferdestination).

The transfer monitor area 1 in the semiconductor device 2_1 is set asthe write detecting area (transfer source). That is, in the writedetecting area (transfer source), identification information specifyingthe semiconductor device 2_1 and address information specifying theaddress area of the transfer monitor area 1 are set. A task for filteroperation A, which is a task executed in the semiconductor device 2_1,is set as a write task (source). The maximum number of transfer bytesper frame is set to 512. The transfer start trigger 1 is set when thetask input/output data is equal to or more than the maximum number oftransfer bytes per frame, and the transfer start trigger 2 is set whenthe write task ends or enters the pause state. The transfer starttrigger 1 means that, in the semiconductor device 2_1, when the sum ofthe differences between the write transfer detection flag and the readtransfer detection flag in the transfer monitor area 1, i.e., the memory18, becomes equal to or larger than the maximum transfer byte count 512,the transfer is started.

In the task input/output data area 0 setting register 702_0 and the taskinput/output data area 1 setting register 702_1, the task to beinput/output, the distinction of input/output (input or output), theinput/output data area, the initial value of the automatic allocationblock number at the time of task startup, and the number of automaticallocation blocks at the time of task startup are set. Since the taskstarted in semiconductor device 2_1 is a task for filter operation A, atask for filter operation A is set as a task for performinginput/output. The transfer monitor area 0 is set in the input/outputdata area of the task input/output data area 0 setting register 702_0,and the transfer monitor area 1 is set in the input/output data area ofthe task input/output data area 1 setting register 702_1. Since thetarget memory is the memory 17, the input of the transfer monitor area 0is set as the distinction between the input and the output of the outputdata area 0 setting register 702_0. On the other hand, in the transfermonitor area 1, since the target memory is the memory 18, the output isset as the distinction between the input and the output of the outputdata area 1 setting register 702_1.

In addition, 0 is set as the initial value of the automatic allocationblock number at the time of task startup in the task input/output dataarea 0 setting register 702_0 and the task input/output data area 1setting register 702_1, and 2 and 4 are set as the number of automaticallocation blocks at the time of task startup.

The task startup condition setting register 0: 703_0 is set with thetask to be started, the name of the startup function, the number ofparallel startups, the argument to the startup function, the taskstartup trigger, and the task pause trigger. In the semiconductor device2_1, since the task for the filter operation A is executed by using thetwo processors CPU1 and CPU2, the task to be started is set to the taskfor the filter operation A, and the number of parallel starts is set to2. The name of the activation function is set to f, and the argument tothe activation function is set as shown in the figure. In thesemiconductor device 2_1, since the task is started responsive to theoccurrence of the frame reception end event, the time when the framereception end event occurs is set as the task start trigger. Since thetrigger for suspending the task for filter operation A is notspecifically defined, the task suspend trigger is not set.

The configuration of the task input/output data control register 12 ofthe semiconductor device 2_2 shown in FIGS. 14 and 15 is the same asthat of FIGS. 12 and 13. In the task input/output data control register12 shown in FIGS. 14 and 15, since the corresponding semiconductordevice is semiconductor device 2_2, semiconductor device 2_2(identification data ID2) is set instead of semiconductor device 2_1 inthe task input/output data transfer control register 0: 701_0. As shownin FIG. 2, in the semiconductor device 2_2, since the task for thefilter operation B is executed in order from the reception block 1, theinitialization value of the auto-allocation block number at the time oftask startup is set to 1 in the task input/output data area 0 settingregister 702_0. Further, in the task input/output data control register12 of the semiconductor device 2_2, not the task for the filteroperation A but the task for the filter operation B is set as a task.

In register setting operation of semiconductor device 2_1 and 2_2semiconductor device 2_1 and 2_2, the registers in schedule device 10(ID1) and 10 (ID2) are set by executing the software. FIGS. 16 and 17are flowcharts showing the setting operation in the semiconductor devicerelated to the first embodiment. Here, FIG. 16 shows the operation inthe semiconductor device 2_1, and FIG. 17 shows the operation in thesemiconductor device 2_2.

In S 90 of FIG. 16, the setting of the scheduling device 10 (ID1) isstarted. In semiconductor device 2_1, tasks for filter operation A areexecuted. Therefore, in S 91, the scheduling device 10 (ID1) in thesemiconductor device 2_1 sets a register related to the control of thetasks for the filter operation A. In step S 90, the task input/outputdata control register 12 in the semiconductor device 2_1 is set as shownin FIGS. 12 and 13. Next, in step S 92, the monitoring of the transfermonitor areas 0 and 1 (memories 17 and 18) by the monitor circuit 15 isvalidated. In step S 93, the transfer control is validated so that thetransfer control is executed in accordance with the contents set in thetask input/output data transfer control register 0 shown in FIG. 12.Further, in S 94, activation of tasks for filter operation A by framereception termination events is validated. Thereafter, in S 95, thesetting of the scheduling device 10 (ID1) in the semiconductor device2_1 ends.

For the semiconductor device 2_2, the same steps as those of thesemiconductor device 2_1 are executed as the step S100˜S105 shown inFIG. 17. The difference between FIG. 16 and FIG. 17 is that in FIG. 17,the register related to the task for the filter operation B is set instep S101, and at this time, the task input/output data control register12 is set as shown in FIGS. 14 and 15.

Task startup in semiconductor device 2_1 and 2_2 will now be described,and task startup operations in semiconductor device 2_1 and 2_2 will bedescribed. In semiconductor device 2_1, the task for filter operation Ais started, and in semiconductor device 2_2, the task for filteroperation B is started. When the task for filter operation A and thetask for filter operation B are started and executed, the filteroperation result is stored in the transmit buffer (operation buffer) insemiconductor device 2_1 and 2_2.

FIGS. 18 and 19 are flowcharts showing the task-starting operation inthe semiconductor device related to the first embodiment. Here, FIG. 18shows the task startup operation in the semiconductor device 2_1, andFIG. 19 shows the task startup operation in the semiconductor device2_2. The task input/output data control circuits 11 included in thesemiconductor device 2_1 and 2_2 execute the control shown in FIGS. 18and 19. Since FIGS. 18 and 19 are similar, FIG. 18 will be describedfirst, followed by a description of the differences between FIGS. 18 and19.

In FIG. 18, the task-starting operation starts in step S110. Next, instep S111, the task waits until the activation of the task for filteroperation A is validated. When the activation of the tasks for filteroperation A is validated, a step S112 is executed. In step S112, avariable m indicating the number of the receiving block and a variable nindicating the number of the transmitting block are set to 0.Thereafter, in step S113, it waits for frame reception terminationevents to occur. The occurrence of the frame reception completion eventserves as a start trigger for starting the task for the filter operationA.

If an activation trigger is detected, then a step S114 is performed. Instep S114, a variable c indicating the number of parallel starts is setto 0. Thereafter, the S115 of steps is performed.

In the step S115, logical addresses for two blocks from the block m areallocated as a task input data area for the task for the filteroperation A. In addition, logical addresses for four blocks from theblock n are allocated as a task output data area for the task for filteroperation A. As a result, when the task for the filter operation A isstarted, two blocks from the block m in the memory 17 become the inputdata of the task for the filter operation A, and the operation result ofthe filter operation A is written in the memory 18 from the block n tofour blocks. In addition, the start addresses of the respective addressareas, that is, the task input data area and the task output data areaare set as arguments to the activation function f of the task for thefilter operation A. The two blocks and the four blocks described aboveare the number of automatically allocated blocks at the time of taskstartup, and are the number of blocks set in the task input/output dataarea 0 setting register 702_0 and the task input/output data area 1setting register 702_1 shown in FIG. 13.

In step S115, when the setting of the arguments to the activationfunction f is completed, step S116 is executed. In this step S116, thetask for the filter operation A is started. Next, in step S117, thevariables c, m and n are updated. That is, the calculation of c=c+1,m=m+2, and n=n+4 is performed. Here, 2 and 4 are the number of blocksdescribed above.

Next, a step S118 is performed. In step S118, it is determined whetheror not the number of parallel activations is equal to or less than 2based on the values of the variables c. If the number of parallelactivations is 2 or less, the process returns to step S115, and stepS115˜S118 is repeated until the number of parallel activations exceeds2. On the other hand, when the parallel activation count exceeds 2, theprocess returns to step S113 and waits for a task-activation trigger tooccur in step S113. In the first embodiment, since the semiconductordevice 2_1 includes two processors CPU1 and CPU2, the number of parallelstartups can be set to 2.

As described above, the filter operation A is executed using thereception data of two consecutive reception blocks (1 KB), and theresult of the filter operation is written in the four transmissionblocks (0.25 KB).

Also in the semiconductor device 2_2, the tasks for the filter operationB are started by a step S120˜S128 (FIG. 19) similar to the stepS110˜S118 shown in FIG. 18. The step S120˜S128 executed in semiconductordevice 2_2 differs from the step S110˜S118 in that the target task is atask for the filter operation B, and that the variable m set in the stepS122 is 1 instead of 0. The variable m is set to 1 because the variablesemiconductor device 2_2 performs the filter operation B from thereception block 1, rather than the reception block 0, as shown in FIG.2.

The filter operation results stored in the transmission buffers(operation buffers) of the semiconductor device 2_1 and 2_2 aretransmitted (transferred) to the semiconductor device 2_3. Next, theoperation of transmitting the filter operation results (task outputdata) in the semiconductor device 2_1 and 2_2 will be described. FIGS.20 and 21 are flowcharts showing the transmission operation in thesemiconductor device related to the first embodiment. Here, FIG. 20shows a transmission operation in the semiconductor device 2_1, and FIG.21 shows a transmission operation in the semiconductor device 2_2. Thecontrol shown in FIGS. 20 and 21 is executed by thetask-input/output-data control circuits 11 provided in the semiconductordevice 2_1 and 2_2.

Since FIG. 20 and FIG. 21 are similar to each other, referring to FIG.20, the transmission operation in semiconductor device 2_1 will bedescribed, and thereafter, the difference from the transmissionoperation in semiconductor device 2_2 will be described with referenceto FIG. 21.

In step S130 of FIG. 20, the transmission operation is started. Next, instep S131, the task waits until the transfer control becomes valid bysetting the task input/output data transfer control register 0: 701_0shown in FIG. 12. When the transfer control becomes valid, in step S132,the transfer start trigger 1 and the transfer start trigger 2 are waitedfor to occur.

For example, when the transfer-start trigger 1 is generated, the stepS133 is executed. In step S133, all blocks in the write detecting area(the transfer monitor area 1 of the semiconductor device 2_1 as thetransfer source) in which the address area is not transferred areextracted. Here, a block having an address area which has not beentransferred means a block in which an address in which “c. unreferencedflag”=“a. write flag”−“b. read flag” is not 0 exists. The unreferencedflag, the write flag, and the read flag described above are shown laterin FIGS. 35 to 56, etc., but the write flag is attached to the addressat which writing has been performed, the read flag is attached to theaddress at which reading has been performed, and the unreferenced flagis attached to the address at which writing has been performed and atwhich reading has not been performed. For this reason, in the step S133,the monitor 15 monitors the memories 18 constituting the transmitbuffer, and extracts all the blocks in which the addresses to whichwriting has been performed and from which reading has not been performedare present.

Next, a step S134 is performed. In the step S134, a list in which thelist of the block numbers extracted by the S133 is rearranged in thetransmission order (hereinafter, referred to as a block number list inthe transmission order) is created. As a method of rearranging the blocknumbers, there are first to fourth methods described below. Here, apriority evaluation function corresponding to each of the sortingmethods is considered, and in the S134 of steps, it is assumed that thesorting of the block numbers is performed in descending order ofpriority based on the priority evaluation function.

The first method is suitable for a case where it is desired topreferentially transmit a block in which data having a long residencetime in the transmission buffer is stored. The priority evaluationfunction fp1 when the first method is employed is fp1=tc−twe when thepresent time is tc and the last write time is twe. Here, the presenttime tc is time information supplied from the timer 9 to the schedulingdevice 10 (ID1), and the present time tc is synchronized between thesemiconductor device 2_1 to 2_3 and the data transmitting device 3. Thelast write time twe is a value set in the CTB7 of items in FIGS. 41 to46, which will be described later. Also, suppose that tc and twe arelarger in future time than in past time, respectively, and the higherthe fp1 value, the higher the precedence.

The second method is suitable for a case where it is desired topreferentially transmit a block in which data referenced by a taskhaving a severe timing constraint is stored. When the second method isemployed, the priority evaluation function fp2 is set to fp2=tc−tlm byusing the present time tc when tlm is the time at which the taskreferring to the data to be transmitted must be finished. When thesecond method is employed, the setting field of tlm is added to the taskinput/output data transfer control register 0: 701_0 of FIG. 12. Whenreferring to data stored in a certain transfer monitor area by aplurality of tasks, the tlm uses a timing constraint of a task whichmust be terminated earliest among all tasks referring to data stored inthe one transfer monitor area. Assuming that tlm has a larger value thanthe previous time, when there is no timing constraint violation, therelationship tlm≥tc holds, and the fp2 becomes a negative value or 0.The higher the value of the fp2, the higher the priority.

The third method is suitable for a case where it is desired topreferentially transmit a block in which data referred to by a taskhaving a high execution priority is stored. The priority evaluatingfunction fp3 when the third method is employed is a function fp3=pr whenthe execution priority of the task referring to the data to betransmitted is pr. When the third method is employed, the setting fieldof the pr is added to the task input/output data transfer controlregister 0: 701_0 of FIG. 12 and set. Here, the higher the values of prand fp3 are, the higher the priorities are.

The fourth method is suitable for a case where it is desired todetermine a block to be preferentially transmitted by combining thefirst method, the second method, and the third method. When the weightfor the evaluation result according to the first method is w 1, theweight for the evaluation result according to the second method is w 2,and the weight for the evaluation result according to the third methodis w 3, the priority evaluation function fp4 when the fourth method isemployed is fp4=w 1×fp1+w 2×fp2+w 3×fp3. Here, arbitrary real numbersare set as weights in the above-mentioned w 1 to w 3, respectively. Thevalues of w 1 to w 3 can be changed in synchronization with an arbitraryevent.

For example, in first embodiment, in order to satisfy the timingconstraint 1, the fourth method is adopted, and the following setting isperformed. When a transmission/reception end event occurs, w 1=1, w 2=1,and w 3=0 are set. When SYNC0 events occur, w 1=0, w 2=0, and w 3=1 areset. The tlm provided in the task input/output data transfer controlregister 0 of each of the semiconductor device 2_1 and the semiconductordevice 2_2 sets the time at which the next SYNC0 event occurs when theSYNC0 event occurs. Since the SYNC0 event occurs at a constant cycle insynchronization with the timer 9, it is possible to set the time atwhich the next SYNC0 event occurs when the SYNC0 event occurs asdescribed above. The pr provided in the task input/output data transfercontrol register 0 of each of the semiconductor device 2_1 and thesemiconductor device 2_2 can be set to any value, but 0 representing thelowest priority is set here. By these settings, blocks to be transmittedwith priorities corresponding to the timing constraint 1 are determinedby combining the first method and the second method in a period betweenthe transmission/reception ending event and the SYNC0 event. Inaddition, blocks to be preferentially transmitted in the third methodare determined in a period other than the period between thetransmission/reception ending event and the SYNC0 event. By performingthese settings, for example, even when tasks whose number of CPUsgreatly exceeds the number of CPUs are operating in parallel on thesemiconductor device 2_1 and the semiconductor device 2_2, blocks to betransmitted can be determined with priorities corresponding to thetiming constraints of the respective tasks.

Next, a step S135 is performed. In step S135, consecutive untransferredaddress areas are extracted in the order of the block number lists inthe transmission order created in step S134. For each extracted addressarea, a datagram is created to which header information of the headaddress (logical address) of the extracted address area and the areasize (number of bytes) of the extracted address area is added.Hereinafter, the created datagrams will be referred to as datagram 0,datagram 1, datagram 2, . . . in order.

In the following step S136, data (hereinafter referred to as atransmission datagram) in which datagram 0, datagram 1, datagram 2, . .. are combined is created so that the sum of the region sizes, which areheader information of the datagrams, does not exceed the maximum numberof transfer bytes per frame (see task input/output data transfer controlregister 0: 701_0 in FIG. 12).

In step S137, a network header including destination information of aread detecting area (transfer monitor area 0 in semiconductor device 2_3as a transfer destination) is added to the transmission datagram createdin step S136 to create a transmission frame. The read detecting area isset in the task input/output data transfer control register 701_0 shownin FIG. 12, and the destination information includes identificationinformation ID3 for specifying the semiconductor device of the transferdestination and address information for specifying the address area ofthe transfer monitor area 0.

In the step S138, the DMA controller included in the communicationdevice 5_1 is used. The created transmission frame is transmitted to thesemiconductor device 2_3. After the step S138, the process returns tothe step S132, and when the occurrence of the transfer start trigger 1or the transfer start trigger 2 is detected, the above-described stepsare repeated.

In the semiconductor device 2_2, a step S140˜S148 (FIG. 21) similar tothe step S130˜S138 (FIG. 20) is executed. The difference between FIG. 21and FIG. 20 is that, in FIG. 21, the semiconductor device 2_2 transmitsa transmission frame to the semiconductor device 2_3, and that thedestination information added to the transmission datagram is thetransfer monitor area 1 of the semiconductor device 2_3 in the stepS147.

In the S133˜S137 of FIG. 20 and the S143˜S147 of FIG. 21, although theexecution time may be shortened by executing a part of the processing inparallel or by changing the order of executing a part of the processingby subdividing the part of the processing, the flow of executing eachprocessing in order is described in the drawing in order to make theflow of the processing easy to understand.

Next, semiconductor device 2_3 will be described. In the semiconductordevice 2_3, the task for output operation A is executed on the filteroperation result received from the semiconductor device 2_1, and thetask for output operation B is executed on the filter operation resultreceived from the semiconductor device 2_2.

In the memories 17 and 18 of the semiconductor device 2_3, an addressarea (transfer monitor area) corresponding to the task for the outputoperation A and an address area (transfer monitor area) corresponding tothe task for the output operation B are set. FIGS. 22 to 25 are diagramsfor explaining the memory address area of the semiconductor devicerelated to the first embodiment. Here, FIG. 22 shows an address region(transfer monitor region 0) of the memory 17 corresponding to the taskfor output operation A, and FIG. 23 shows an address region (transfermonitor region 1) of the memory 18 corresponding to the task for outputoperation A. FIG. 24 shows an address region (transfer monitor region 2)of the memory 17 corresponding to the task for output operation B, andFIG. 25 shows an address region (transfer monitor region 3) of thememory 18 corresponding to the task for output operation B.

As shown in FIG. 22 and FIG. 24, the address area of the memory 17 iscomposed of bankways 17_0 to 17_3 in units of 0.25 KB. As shown in FIG.23 and FIG. 25, the address area of the memory 18 is composed of bankways 18_0 to 18_3 in units of 1 KB. In FIGS. 22 to 25, the address areasof the memories 17 and 18 are represented by physical addresses, but areconverted into logical addresses by the address conversion circuit 13.The logical address of the block in each bank way is converted accordingto the conversion formula shown in each figure, for example, in FIG. 22,the logical address of the block m=20000H+100H×m.

Of the bankways 17_0 to 17_3 constituting the memories 17, the bankways17_0 and 17_1 correspond to the task for the output operation A withrespect to the operation result from the semiconductor device 2_1, andthe bankways 17_2 and 17_3 correspond to the task for the outputoperation B with respect to the operation result from the semiconductordevice 2_2. Among the bankways 18_0 to 18_3 constituting the memory 18,the bankways 18_0 and 18_2 correspond to the task for the outputoperation A, and the output operation result by the task for the outputoperation A is stored. On the other hand, the bankways 18_1 and 18_3correspond to the task for the output operation B, and store the outputoperation result by the task for the output operation B.

The operation result of the task for filter operation A executed in thesemiconductor device 2_1 is written to the bankway in the memory 18 ofthe semiconductor device 2_1 (write), and the written operation resultis transferred from the semiconductor device 2_1 to the semiconductordevice 2_3 as shown in FIG. 22, and is read by the processor in thesemiconductor device 2_3 (read). For example, in the block 0 in the bankway 17_0 of FIG. 22, in the semiconductor device 2_1, the data of theoperation result written by the processor CPU1 to the bank way of thesemiconductor device 2_1 is transferred to the semiconductor device 2_3,and the data is written to the block 0. The data written in the block 0is read by the processor CPU1 in the semiconductor device 2_3. The sameapplies to the remaining blocks 1 to 7 shown in FIG. 22.

In the semiconductor device 2_3, the processor CPU1, CPU2 executes thetask for the output operation A on the data read from the blocks 0 to 7,and the processor CPU1 writes the operation result to the block 0 of thebankway 18_0 as shown in FIG. 23. Similarly, as shown in FIG. 23, theprocessor CPU2 writes the operation result to the block 1 of the bankway 18_2.

On the other hand, the operation result of the task for the filteroperation B executed in the semiconductor device 2_2 is written in thebank way in the memory 18 of the semiconductor device 2_2 (write), andthe written operation result is transferred from the semiconductordevice 2_2 to the semiconductor device 2_3 as shown in FIG. 24, and isread by the processor in the semiconductor device 2_3 (read). Forexample, in the block 0 in the bank way 17_2 of FIG. 24, in thesemiconductor device 2_2, the data of the operation result written bythe processor CPU1 to the bank way of the semiconductor device 2_2 istransferred to the semiconductor device 2_3, and the data is written tothe block 0. The data written in the block 0 is read by the processorCPU1 in the semiconductor device 2_3. The same applies to the remainingblocks 1 to 7 shown in FIG. 24.

In the semiconductor device 2_3, the processor CPU1, CPU2 executes thetask for the output operation B on the data read from the blocks 0 to 7,and the processor CPU1 writes the operation result to the block 0 of thebankway 18_1, as shown in FIG. 25. Similarly, as shown in FIG. 25, theprocessor CPU2 writes the operation result to the block 1 of the bankway 18_3.

As a result, the data on which the filter operation and the outputoperation have been performed is acquired.

(semiconductor device 2_3 task input/output data control register) FIGS.26 to 29 show the configuration of the task input/output data controlregister of the semiconductor device related to the first embodiment.Since the task input/output data control register 12 of semiconductordevice 2_3 illustrated in FIGS. 26 to 29 is similar to FIGS. 12 to 15,the differences are mainly described.

Each of semiconductor device 2_1 and 2_2 has two transfer monitor area 0setting registers 700_0 and transfer monitor area 1 setting registers700_1 as transfer monitor area setting registers, but semiconductordevice 2_3 is a transfer monitor area setting register. Four transfermonitor area setting registers are provided. That is, the semiconductordevice 2_3 includes a transfer monitor area 0 setting register: 700_0, atransfer monitor area 1 setting register: 700_1, a transfer monitor area2 setting register: 700_2, and a transfer monitor area 3 settingregister: 700_3.

In the transfer monitor area 0 setting register: 700_0, the targetmemory is the bank ways 17_0 and 17_1 of the memory 17 shown in FIG. 22,and in the transfer monitor area 1 setting register: 700_1, the targetmemory is the bank ways 18_0 and 18_2 of the memory 18 shown in FIG. 23.Further, in the transfer monitor area 2 setting register: 700_2, thetarget memory is the bank ways 17_2 and 17_3 of the memory 17 shown inFIG. 24, and in the transfer monitor area 3 setting register: 700_3, thetarget memory is the bank ways 18_1 and 18_3 of the memory 18 shown inFIG. 25. As shown in FIGS. 22 to 25, when the semiconductor device 2_3is operated, the “block allocation constraint of the target area” in thetransfer monitor region 0 setting register: 700_0 to the transfermonitor region 3 setting register: 700_3 is as shown in FIGS. 26 and 28.In addition, the automatic block allocation trigger of the target areais set without setting, and the number of bytes per block of the targetarea and the number of bytes per flag of the target area are also set asshown in FIG. 26 and FIG. 28.

In semiconductor device 2_1 and 2_2, one task I/O data transfer controlregister 0: 701_0 is provided as a task I/O data transfer controlregister, while semiconductor device 2_3 includes two task I/O datatransfer control registers 0: 701_0 and 701_1 as a task I/O datatransfer control register.

In the task input/output data transfer control register 0: 701_0, thetransfer monitor area 0 (FIG. 22) of the semiconductor device 2_3 is setas the read detecting area (transfer destination), and the task for theoutput operation A of the semiconductor device 2_3 is set as the readtask (transfer destination). The transfer monitor area 1 of thesemiconductor device 2_1 is set in the write detecting area (transfersource), and the task for the filter operation A of the semiconductordevice 2_1 is set as the write task (transfer source). On the otherhand, in the task input/output data transfer control register 1: 701_1,the transfer monitor area 2 (FIG. 24) of the semiconductor device 2_3 isset as the read detecting area (transfer destination), and the task forthe output operation B of the semiconductor device 2_3 is set as theread task (transfer destination). The transfer monitor area 1 of thesemiconductor device 2_2 is set in the write detecting area (transfersource), and the task for the filter operation B of the semiconductordevice 2_2 is set as the write task (transfer source).

In the task input/output data transfer control register 0: 701_0 and thetask input/output data transfer control register 1: 701_1, the maximumnumber of transfer bytes per frame is set to 512, and the transfer starttriggers 1 and 2 are set as shown in FIGS. 26 and 28.

The semiconductor device 2_1 and 2_2 have two task I/O data area 0setting registers 702_0 and a task I/O data area 1 setting register702_1 as task I/O data area setting registers, but the semiconductordevice 2_3 has four task I/O data area setting registers as task I/Odata area setting registers. That is, the semiconductor device 2_3includes a task input/output data area setting register: 702_0, a taskinput/output data area 1 setting register: 702_1, a task input/outputdata area 2 setting register: 702_2, and a task input/output data area 3setting register: 702_3.

As the input/output data areas of the task input/output data area 0setting register: 702_0 to the task input/output data area 3 settingregister: 702_3, transfer monitor areas 0 to 3 (FIG. 22 to FIG. 25) areset. The initial value of the task to be input/output, the input oroutput (input/output), the block number of automatic allocation at thetime of task startup, and the number of automatic allocation blocks atthe time of task startup are set as shown in FIGS. 27 and 29.

Further, the semiconductor device 2_1 and 2_2 have one task activationcondition setting register 0: 703_0 as a task activation conditionsetting register, but the semiconductor device 2_3 has two taskactivation condition setting registers 0: 703_0 and a task activationcondition setting register 1: 703_1. The startup target task, the nameof the startup function, the number of parallel startups, the argumentsto the startup function, the task startup trigger, and the task pausetrigger are set as shown in FIGS. 27 and 29.

The task input/output data control registers 12 of the semiconductordevice 2_1 and 2_2 may have the same configuration as the semiconductordevice 2_3, and in the semiconductor device 2_1 and 2_2, some of theregisters constituting the task input/output data control registers maybe set as described with reference to FIGS. 12 to 15.

Also in semiconductor device 2_3, a register or the like in thescheduling device 10 (ID3) is set by executing the software. FIG. 30 isa flow chart showing the setting operation in the semiconductor devicerelated to the first embodiment.

In step S210 of FIG. 30, the setting of the scheduling device 10 (ID3)is started. The semiconductor device 2_3 executes tasks for the outputoperation A and the output operation B. Therefore, in step S211, aregister related to the control of the task for output operation A andthe task for output operation B is set in the scheduling device 10 (ID3)in the semiconductor device 2_3. In this step S211, the taskinput/output data control register 12 in the semiconductor device 2_3 isset as shown in FIGS. 26 to 29. Next, in step S212, monitoring of thetransfer monitor areas 0 to 3 (memories 17 and 18) by the monitorcircuits 15 is validated. In step S213, the transfer control isvalidated so that the transfer control is executed in accordance withthe contents set in the task input/output data transfer controlregisters 0 and 1 shown in FIGS. 26 and 28. Further, in step S214, whenthe completion of the transfer of the data to the transfer monitor area0 is detected by the task activation trigger using the monitor 15, theactivation of the task for the output operation A is validated. When thecompletion of the transfer of the data to the transfer monitor area 2 isdetected by the task activation trigger in step S215 by using themonitor 15, the activation of the task for the output operation B isvalidated. Thereafter, the register setting operation is terminated instep S216.

The semiconductor device 2_3 performs an operation of receiving inputdata of the task for output operation A from the semiconductor device2_1 and an operation of receiving input data of the task for outputoperation B from the semiconductor device 2_2. This operation isexecuted by the task input/output data control circuit 13 in thesemiconductor device 2_3. FIGS. 31 and 32 are diagrams showing thereception flows of task-input data relating to the first embodiment.Here, FIG. 31 shows the operation at the time of receiving the inputdata of the task for output operation A, and FIG. 32 shows the operationat the time of receiving the input data of the task for output operationB.

In FIG. 31, receive is started in step S220. In the step S221, the taskinput/output data transfer control register 0: 701_0 shown in FIG. 26 isset to wait for the enabling of the transfer control. When the transfercontrol is validated by the task input/output data transfer controlregister 0: 701_0, the step S222 is executed. In the step S222, the stepwaits for reception of a received frame from the semiconductor device2_1.

If a received frame is received, then a step S223 is performed. In thestep S223, data (task input data) corresponding to the headerinformation is developed in the task input data area (transfer monitorarea 0) based on the header information (head address information andarea size information) of the respective datagrams in the receivedframe. When the expansion of the data of the received frame iscompleted, the process returns to the step S222 and waits for receptionof a new received frame.

FIG. 32 is similar to FIG. 31, except that in the step S231corresponding to the step S221, the task input/output data transfercontrol register 1: 701_1 shown in FIG. 28 waits for the transfercontrol to be activated, and in the step S233 corresponding to the stepS223, the task input data is expanded to the transfer monitor area 2(task input data area).

In the above operation, the data obtained by the execution of the taskfor the filter operation A is expanded in the transfer monitor area 1 bythe DMA controller included in the communication device 5_3, and thedata obtained by the execution of the task for the filter operation B isexpanded in the transfer monitor area 2 by the DMA controller.

Next, the operation of task startup in semiconductor device 2_3 will bedescribed. FIGS. 33 and 34 are flowcharts showing the task-startingoperation in the semiconductor device related to the first embodiment.Here, FIG. 33 shows an operation of starting the task for outputoperation A, and FIG. 34 shows an operation of starting the task foroutput operation B. The task input/output data control circuit 11included in the semiconductor device 2_3 performs the control shown inFIGS. 33 and 34. Since FIGS. 33 and 34 are similar, FIG. 33 will bedescribed first, and thereafter the differences between FIGS. 33 and 34will be described.

In FIG. 33, the task-starting operation starts in step S240. Next, instep S241, the processing waits until the activation of the task for theoutput operation A is validated. When the activation of the task for theoutput operation A is validated, the step S242 is executed. In stepS242, a variable m indicating the number of the block in the task inputdata area and a variable n indicating the number of the block in thetask output data area are set to 0. Thereafter, in step S243, the taskstart trigger is waited, that is, the task start trigger waits forcompletion of data transfer to the transfer monitor area 0 set in theread detecting area (transfer destination) shown in FIG. 26.

When the transfer of the data to the transfer monitor area 0 iscompleted, the transfer start trigger 1 is generated, and then the stepS244 is executed. In step S244, a variable c indicating the number ofparallel starts is set to 0. Thereafter, the S245 of steps is performed.

In the step S245, logical addresses for four blocks from the block m areallocated as task input data areas for the task for the output operationA. Further, as a task output data area for the task for output operationA, a logical address for one block is allocated from the block n. As aresult, when the task for output operation A is executed, the taskoutput data area in which the operation result is stored is stored inthe memory 18. In addition, the top address of each address area, i.e.,the task input data area and the task output data area. This property isset as an argument to the start function fg of the task for outputoperation A. The above-mentioned four blocks and two blocks are thenumber of automatically allocated blocks at the time of task startup,and are the number of blocks set in the task input/output data area 0setting register 702_0 and the task input/output data area 1 settingregister 702_1 shown in FIG. 27.

In step S245, when the setting of the arguments to the activationfunction fg is completed, step S246 is executed. In this step S246, thetask for the output operation A is started. Next, in step S247, thevariables c, m and n are updated. That is, the calculation of c=c+1,m=m+4, and n=n+1 is performed. Here, 4 and 1 are the number of blocksdescribed above.

Next, a step S248 is performed. In step S248, it is determined whetheror not the number of parallel activations is equal to or less than 2based on the values of the variables c. If the number of parallelactivations is 2 or less, the process returns to step S245, and stepS245-S248 is repeated until the number of parallel activations exceeds2. On the other hand, when the parallel activation count exceeds 2, theprocess returns to step S243 and waits for a task-activation trigger tooccur in step S243. In the first embodiment, since the semiconductordevice 2_3 includes two processors CPU1 and CPU2, the number of parallelstartups can be set to 2.

As described above, the output operation A is executed using the data offour consecutive blocks (0.25 KB), and the output operation result iswritten in one block (1 KB).

Also in the task for output operation B, the task for output operation Bis started by the step S250˜S258 shown in FIG. 34 similar to the stepS240˜S248 shown in FIG. 33. The step S250˜S258 executed in semiconductordevice 2_3 differs from the step S240˜S248 in that the target task isthe task for output operation B, the task input data area is thetransfer monitor area 2, and the task output data area is the transfermonitor area 3.

In the above operation, the output operation A is executed on the resultof the verification of the filter operation A stored in four consecutiveblocks in the transfer monitor area 0, and the result of the outputoperation is stored in one block of the transfer monitor area 1.Similarly, the output operation B is performed on the result of thefilter operation B stored in four consecutive blocks in the transfermonitor area 2, and the result of the output operation B is stored inone block of the transfer monitor area 3.

The task input/output data control circuits 10 (ID1) to 10 (ID3) in theschedule device 12 are connected to the monitor circuit 15 as shown inFIG. 1. The monitor circuit 15 monitors address signals supplied fromthe bus switch 14 to the memories 17 and 18, and supplies informationobtained by the monitoring to the task input/output data controlcircuits 10 (ID1) to 10 (ID3). The task input/output data controlcircuits 10 (ID1) to (ID3) operate on the basis of the supplied data.Here, for ease of explanation, it is assumed that the task input/outputdata control circuits 10 (ID1) to 10 (ID3) create a management tablebased on the supplied information, and operate based on the createdmanagement table. Of course, the task input/output data control circuits10 (ID1) to 10 (ID3) do not need to create a management table foroperation.

FIGS. 35 to 56 are diagrams for explaining a control table related tothe first embodiment. Here, FIGS. 35 to 46, 53 and 54 show managementtables formed by the task input/output data control circuit 10 (ID1) ofthe semiconductor device 2_1, and FIGS. 47 to 52, 55 and 56 showmanagement tables formed by the task input/output data control circuit10 (ID3) of the semiconductor device 2_3. Since the management tableformed by the task input/output data control circuit 10 (ID2) of thesemiconductor device 2_2 is similar to the management table formed bythe task input/output data control circuit 10 (ID1), the explanationthereof is omitted.

Since the items of the management table shown in FIGS. 35 to 56 are thesame, the items of the management table will first be described withreference to FIG. 35. The administration table has the CTB1˜CTB10 items.

An object transfer monitor area is set in the item CTB1, and a monitorobject semiconductor device is set in the item CTB2. The base address ofthe target physical address and the base address of the logical addressare set in the item CTB3, the area size of the target monitor area isset in the item CTB4, and the number of bytes per flag, which will bedescribed later, is set in the item CTB5.

In addition, the first write (write) time to the target transfer monitorarea is set in the item CTB6, and the last write (write) time to thetarget transfer monitor area is set in the item CTB7. The first read(read) time for the target transfer monitor area is set in the itemCTB8, and the last read (read) time for the target transfer monitor areais set in the item CTB9.

In the item CTB10, the state of the target transfer monitor area is set.The item CTB10 includes an offset address specifying an address in thetransfer monitor area, a. a write flag, b. a read flag, and c. anunreferenced flag. A logical value “0” is set to the write flag when amonitor using the monitor circuit 15 is started, and a logical value “1”is set to the write flag when writing is performed to an addressspecified by a corresponding offset address. A logical value “0” is setin the b. read flag, and when reading is performed on an addressspecified by the corresponding offset address, a logical value “1” isset in the b. read flag.

Set (a. Write flag)−(b. Read flag) in the unreferenced flag. That is,when writing is performed to the corresponding address and reading isnot performed, c. the logical value “1” is set to the unreferenced flag,and when reading is performed after writing is performed to thecorresponding address, c. the logical value “0” is set to theunreferenced flag. Note that even when writing is not performed to thecorresponding address, the logical value “0” is set to the c.unreferenced flag. In the entry CTB10, the sum of a. write flag, b. readflag, and c. unreferenced flag is set.

(Information in semiconductor device 2_1) FIGS. 35 to 40 illustrate amanagement table corresponding to the memory 17 that constitutes thereceive buffer. In order to correspond to the memory 17, the transfermonitor area 0 which is the memory 17 is set in the item CTB1, and thesemiconductor device 2_1 (ID1) is set in the item CTB1. In the itemCTB4, 1024 bytes are set as the area size of the transfer monitor area.Since the offset address in the item CTB10 is in units of 1 byte, 1 isset as the number of bytes per flag of the item CTB5.

FIG. 35 shows the state of the management table when the monitor isstarted (when the monitor is started), and FIG. 36 shows the state whenthe initial write transfer is detected (when the initial write transferis detected (when the initial write is 4-byte write)). FIG. 37 shows astate when a write transfer of 1020 bytes is detected (immediately afterdetection of a write of 1020 bytes), and FIG. 38 shows a state when awrite transfer for all addresses is detected (when a write transfer isdetected for all addresses). That is, FIG. 35 to FIG. 40 show changes inthe management table when write transfers are sequentially performed onthe reception buffer.

Since neither reading nor writing has yet been performed at the time ofstarting monitoring (FIG. 35), the CTB6-CTB9 of items is not yet set.The base address of the entry CTB3 is also not set. Since accesses fromthe bus switch 14 to the memory 17 are not detected in the monitorcircuit 15, writing and reading to and from the address specified by theoffset address set in the item CTB10 are not performed, and therefore,as shown in FIG. 35, the item CTB10 is set to logical values “0” for allof the a. write flag, the b. read flag, and the c. unreferenced flag.

As shown in FIG. 36, when the scheduling device 10 (ID1) sets the baseaddress of the physical address to 00000H, sets the base address of thelogical address to 20000H, and writes 4 bytes, the time id1m0tw4 at thistime is set as the first write time and the last write time. On theother hand, the monitor circuit 15 detects the writing of 4 bytes to theconsecutive offset addresses 0000H to 0003H, notifies the taskinput/output data control circuit 10 (ID1), and the a. write flagcorresponding to these is changed to the logical value “1”, and the c.unreferenced flag corresponding to these is also changed to the logicalvalue “1”.

When 1020 bytes are written, the time id1m0tw1020 at that time is set asthe last write time, as shown in FIG. 37. Further, according to thenotification from the monitor circuit 15, the task input/output datacontrol circuit 10 (ID1) sets the a. write flag and the c. unreferencedflag corresponding to 1020 offset addresses to logical values “1”. When1024 bytes are written, the a. write flag and the c. unreferenced flagcorresponding to the offset addresses 0000H to 03FFH are changed to thelogical value “1” as shown in FIG. 38.

When the processor reads data from the memory 17, the b. read flag andthe c. unreferenced flag are changed, and the first read time and thelast read time are changed. That is, when the first read transfer isdetected (when the first read is 4-byte read), the first read time andthe last read time are set to the read time id1m0tr4 as shown in FIG.30. The monitor circuit 15 detects the reading of four bytes to theconsecutive offset addresses 0000H to 0003H, and notifies the taskinput/output data control circuit 10 (ID1). As a result, the taskinput/output data control circuit 10 (ID1) changes the a. read flagcorresponding to these offset addresses to the logical value “1”, andchanges the c. unreferenced flag corresponding to these offset addressesto the logical value “0”.

When read transfer at all addresses is detected from the transfermonitor area 0 which is the memory 17, as shown in FIG. 40, the b. readflag corresponding to the offset addresses 0000H to 03FFH is changed tothe ethical value “1”, and the c. unreferenced flag corresponding tothese is changed to the logical value “0”.

As a result, the scheduling device 10 (ID1) including the taskinput/output data control circuit 11 can grasp the number of data thathas not been read by the processor by referring to the “c. unreferenced”flag.

FIGS. 41 to 46 show the state of the management table corresponding tothe memory 18 constituting the operation buffer (transmission buffer).Since FIGS. 41 to 46 are similar to FIGS. 35 to 40, differences will bemainly explained.

At the time of starting the monitor, as shown in FIG. 41, the transfermonitor area 1 corresponding to the operation buffers is set as the itemCTB1. Also, 256 bytes are set as the size of the transfer monitor area1. Since the monitoring is started, all of the a. write flag, the b.read flag, and the c. unreferenced flag corresponding to the offsetaddress shown in the entry CT10 are set to the logical values “0”.

At the time of detecting the first write transfer by the processor (whenthe first write is 4 bytes), as shown in FIG. 42, the base address ofthe physical address is set to 10000 H, the base address of the logicaladdress is set to 30000 H, and the time (id1m1tw4) at that time is setas the first write time and the last write time. In addition, based onthe detection result from the monitor circuit 15, the task input/outputdata control circuit 11 changes the a. write flag and the c.unreferenced flag corresponding to the offset addresses 0000 H to 0003 Hto the logical value “1”.

When the processor writes to the operation buffer and 252 bytes arewritten, 252 a. light flags and c. non-reference flags are changed tological value “1” as shown in FIG. 43, and the time (id1m1tw252) at thattime is set as the last light time. When write transfers at alladdresses are detected, 256 a. write flags and c. unreferenced flags arechanged to logical values “1” as shown in FIG. 44, and the time(id1m1tw256) at that time is set as the last write time.

On the other hand, when the scheduling device 10 (ID1) reads data fromthe memory 18, the read flag (b) and the unreferenced flag (c) arechanged, and the first read time and the last read time are changed. Asshown in FIG. 45, when the initial read-transfer operation is detected(when the initial read is 4 bytes), the time (id1m1tr4) at that time isset as the initial read time and the final read time. Further, accordingto the detection result from the monitor circuit 15, the taskinput/output data control circuit 11 changes the b. read flagcorresponding to the offset addresses 0000 H to 0003 H to a logicalvalue “1”, and changes the corresponding c. unreferenced flag to alogical value “0”. When reading by the scheduling device 10 (ID1)proceeds and read transfers at all addresses are detected, the 256 b.read flags are changed to the logical value “1” and the corresponding c.unreferenced flags are changed to the logical value “0” as shown in FIG.46. The time id1m1tr256 at this time is set as the last read time.

As a result, the scheduling device 10 (ID1) including the taskinput/output data control circuit 11 can grasp the number of data thathas not been read out of the data written by the processor by referringto the “c. unreferenced” flag.

(Information in semiconductor device 2_3) In semiconductor device 2_3,the information of the four transmission monitor areas (transfer monitorareas 0 to 3) is acquired and a corresponding management table iscreated. Since the management tables are similar to each other, themanagement table corresponding to the transfer monitor area 0 will bedescribed here.

FIGS. 47-52 are similar to FIGS. 41-46. The difference is that, in FIGS.47 to 52, the semiconductor device 2_3 is set as the monitoring targetin the CTB2 of items, and the memory 17 in the semiconductor device 2_3is set as the transfer monitoring area 0. Further, FIG. 47 to FIG. 50differ in that a write transfer to the transfer monitor area 0 by thescheduling device (ID3) is detected, and in FIGS. 51 and 52, a readtransfer from the transfer monitor area 0 by the processor is detected.That is, FIG. 48 shows the first write transfer detection time by theschedule device 10 (ID3) (when the first write is 4-byte write), FIG. 49shows immediately after the 252-byte write detection by the scheduledevice 10 (ID3), and FIG. 50 shows the write transfer detection time atall addresses by the schedule device 10 (ID3). FIG. 51 shows thedetection of the first read by the processor (when the first read is a4-byte read), and FIG. 52 shows the detection of the read transfer atall addresses by the processor. FIG. 47 shows the monitor start time.

FIG. 53 shows a state in which writing is performed from the state shownin FIG. 46 to the offset addresses 0004 H to 0007 H again. In this case,a write access to the offset address is detected by the monitor circuit15, and the task input/output data control circuit 11 changes the b.read flag corresponding to the offset address to the logical value “0”,and changes the corresponding c. unreferenced flag to the logical value“1”.

FIG. 54 shows a state in which read transfer at all addresses isdetected again from the state shown in FIG. 53. In this case, based onthe detection by the monitor circuit 15, the task input/output datacontrol circuit 11 changes the b. read flag corresponding to the offsetaddresses 0004 H to 0007 H to the logical value “1”, and changes thecorresponding c. unreferenced flag to the logical value “0”.

Further, FIG. 55 shows a case where, after FIG. 54, writing is performedagain to offset addresses 0004 H to 0007 H in the transfer monitor area0 in the semiconductor device 2_3. The task input/output data controlcircuit 11 changes the b. read flag corresponding to the offset addressto the logical value “0”, and changes the corresponding c. unreferencedflag to the logical value “1”. FIG. 56 shows a state in which readtransfer at all addresses is detected again after FIG. 55. In this case,based on the detection by the monitor circuit 15, the task input/outputdata control circuit 11 changes the b. read flag corresponding to theoffset addresses 0004 H to 0007 H to the logical value “1”, and changesthe corresponding c. unreferenced flag to the logical value “0”.

In the network system 1 related to >>first embodiment, operations(filter operations and outputting operations) performed on a frametransmitted from the data transmitting device 3 are distributed to thesemiconductor device 2_1 to 2_3 and are performed. That is, the filteroperation is divided into the filter operation A and the filteroperation B, and is performed in semiconductor device 2_1 and 2_2, andthe output operation is performed in semiconductor device 2_3 on theoperation results of the filter operations A and B. The operations ofthe semiconductor device 2_1 to 2_3 when these operations are performedwill be described below. FIGS. 57 to 60 are timing diagrams showing theoperation of the semiconductor device in the network system related tothe first embodiment.

FIGS. 57 and 58 show operations related to semiconductor device 2_1 and2_3, and by arranging FIG. 58 on the lower side of FIG. 57, timingdiagrams showing operations of semiconductor device 2_1 and 2_3 areobtained. Similarly, FIG. 59 and FIG. 60 show operations related tosemiconductor device 2_2 and 2_3, and by arranging FIG. 60 on the lowerside of FIG. 59, timing diagrams showing operations of semiconductordevice 2_2 and 2_3 are obtained.

In FIG. 57, when the semiconductor device 2_1 receives the receivedframe, the task input/output data control circuit 11 writes the data ofthe received frame in the bank ways 17_0 to 17_3 of the memories 17constituting the reception buffers. At this time, the task input/outputdata control circuit 11 uses the monitor circuit 15 to monitor whetheror not the data written in each of the bankways 17_0 to 17_3 has reacheda predetermined data amount of 1024 bytes.

When the data written in the bank ways 17_0 to 17_3 reaches apredetermined data volume, the scheduling device 10 (ID1) including thetask input/output data control circuit 11 allocates the bank ways 17_0to 17_3 to the blocks 0 to 3 in accordance with the “block allocationconstraint of the target area” of the transfer monitor area 0 settingregister 700_0 shown in FIG. 12, allocates the processors CPU1 and CPU2to the two block units, and starts the task for the filter operation A.As a result, the processors CPU1 and CPU2 read data from the bankways17_0 to 17_3 (FIG. 57: CPU1(f01-R, and CPU2(f23-R)), execute the filteroperation A, and write the operation result of the filter operation A tothe bankways 18_0 to 18_3 of the memories constituting the transmitbuffer (operation buffer) as the blocks 0 to 7 shown in the “blockallocation constraint of the target region” of the transfer monitorregion 1 setting register 700_1 shown in FIG. 12 (FIG. 57: CPU1(f01-W,CPU2(f23-W)).

At this time, the task input/output data control circuit 11 uses themonitor circuit 15 to monitor whether or not the amount of data not yettransmitted in the bankways 18_0 to 18_3 has reached a predeterminedamount of data (256 bytes). When the amount of data written in thebankways 18_0 to 18_3 and not yet transmitted reaches a predeterminedamount of data (256 bytes), the task input/output data control circuit11 transmits (communicates) the data written in the bankways 18_0 to18_3 to the semiconductor device 2_3 as the frames 130 to 133.

In the semiconductor device 2_3, the task input/output data controlcircuit 11 writes the frames 130 to 133 received from the semiconductordevice 2_1 into the bankways 17_0 and 17_1 of the memories 17constituting the received frame. At this time, the task input/outputdata control circuit 11 in the semiconductor device 2_3 uses the monitorcircuit 15 to monitor whether or not the amount of data written in thebankways 17_0 and 17_1 has reached a predetermined amount of data (256bytes). When data of a predetermined data quantity is written in thebankways 17_0 and 17_1, the scheduling device 10 (ID3) including thetask input/output data control circuit 11 starts the task for the outputoperation A. As a result, the processor CPU1,CPU2 in the semiconductordevice 2_3 reads the data written to the bankways 17_0 and 17_1 (FIG.58: CPU1(fg01-R, and CPU2(fg23-R)), executes the output operation A, andwrites the operation result of the output operation A to the bankways18_0 and 18_2 of the memory 18 constituting the operation buffer(transmitting buffer) (FIG. 58: CPU1(fg01-W, and CPU2(fg23-W).

That is, in the semiconductor device 2_1, when the operation result ofthe filter operation A (unsent data) is written in the transmissionbuffer by a predetermined data amount, the transmission buffer isautomatically transmitted to the semiconductor device 2_3. Also in thesemiconductor device 2_3, when a predetermined amount of data is writtenin the reception buffers, the task for the output operation A isautomatically started. That is, in the semiconductor device 2_3, thetask for the output operation A is started preferentially.

The task for filter operation A is executed in semiconductor device 2_1,and the task for outputting operation A is executed in semiconductordevice 2_3. Since the task for output operation A is started when apredetermined data quantity is written in the semiconductor device 2_3,the task for filter operation A and the task for output operation A areexecuted in parallel as shown in FIGS. 57 and 58. As a result, accordingto first embodiment, as shown in FIGS. 57 and 58, the filter operation Aand the output operation A can be performed so as to satisfy the timingconstraint 1.

The semiconductor device 2_2 and 2_3 operate in the same manner as thesemiconductor device 2_1 and 2_3. That is, in the semiconductor device2_2, when it is determined that a predetermined amount of data has beenwritten in the bankways 17_0 to 17_3 by monitoring by the monitorcircuits 15, reading is executed by the processors CPU1 and CPU2(CPU1(f12-R and CPU2(f34-R) as shown in FIG. 59. In addition, the filteroperation B using the read data is performed, and writing is performedon the bankways 18_0 to 18_3 (FIG. 59: CPU1(f12-W; CPU2(f34-W)). Writingto the bankways 18_0 to 18_3 is also monitored by the monitor 15, andwhen a predetermined data amount is reached, the data amount istransmitted (communicated) to the semiconductor device 2_3 as frames 230to 233.

In the semiconductor device 2_3, the received frames 230 to 233 arewritten to the bankways 17_2 and 17_3. Whether or not the amount of dataof the frame written in the bank ways 17_2 and 17_3 has reached apredetermined amount of data is monitored using the monitor circuit 15,and when the predetermined amount of data has been reached, the task foroutput calculation B is started. That is, the data is read from the bankways 17_2 and 17_3 (FIG. 60: CPU1(fg12-R and CPU2(fg34-R), and theoutput operation B is performed to write the data to the bank memories18_1 and 18_3 (FIG. 60: CPU1(fg12-W and CPU2(fg34-W).

As a result, the filter operation B and the output operation B can alsobe performed so as to satisfy the timing constraint 1, as shown in FIGS.59 and 60.

The task for filter operation A and the task for filter operation B areexecuted in parallel in semiconductor device 2_1 and 2_2, and the taskfor output operation A and the task for output operation B are executedin parallel in semiconductor device 2_3. As a result, filtering andpower operations can be performed to satisfy the timing constraint 1.

The above-mentioned management table may be provided in the accessmonitor circuit 15. In this case, the management table holds informationindicating whether or not data to be transferred is stored, and/orinformation regarding access time, for each address area obtained bysubdividing the address area. The scheduling device operates to selectand preferentially transfer data having a long residence time in thetransmission buffer, data referred to by a task having a severe timingconstraint, and/or data referred to by a task having a high executionpriority from among data stored in each of the segmented address areasbased on information provided from the access monitoring circuit 15 andpreferentially transfer the selected data to the transmission buffer,the data referred to by a task having a severe timing constraint, and/orthe data referred to by a task having a high execution priority. Whendata is transferred to the semiconductor device 2_3, the access monitorin the semiconductor device 2_3 updates, in real time, the status of thecontrol table holding information indicating whether or not datatransferred from the memories of the transfer source semiconductordevice is stored, and/or information on the access time, for eachaddress area obtained by subdividing the first address area of thesemiconductor device 2_3. In addition, the access monitor circuits inthe semiconductor device 2_3 provide, in real time, the scheduled devicein the semiconductor device 2_3 with information on the amount of datathat has been transferred to the first address area of the semiconductordevice 2_3 from the memory of the semiconductor device of the transfersource, based on the state of the managing table. In this instance, thescheduling device in the semiconductor device 2_3 starts the task ofreferring to the data transferred to the first address area and/orchanges the order of executing the task of referring to the datatransferred to the first address area based on the data provided fromthe access monitor circuits.

Although the invention made by the present inventor has beenspecifically described based on the embodiment, the present invention isnot limited to the embodiment described above, and it is needless to saythat various modifications can be made without departing from the gistthereof.

What is claimed is:
 1. A semiconductor device comprising: a plurality offirst masters; a scheduling device connected to the plurality of firstmasters for controlling the plurality of first masters to perform aplurality of tasks in real time; a memory accessed by the plurality offirst masters to store data by performing the tasks; and an accessmonitor circuit monitoring access to the memory by the plurality offirst masters, wherein when the access to the memory is detected by theaccess monitor circuit, the data stored in the memory is transferredbased on destination information, wherein when the access monitorcircuit detects access to a predetermined address area of the memory, astate of a control table holding 1) information indicating whether datato be transferred is stored or not and/or 2) information on an accesstime is updated for each address area obtained by subdividing thepredetermined address area.
 2. The semiconductor device according toclaim 1, wherein when the access monitor detects that the data has beenstored in the predetermined address area of the memory, the data storedin the memory is transferred.
 3. The semiconductor device according toclaim 2, further comprising: a communication device for transferring thedata stored in the memory, wherein the destination informationincludes 1) identification information specifying a transfer destinationmemory of the data stored in the memory and 2) address informationspecifying an address area in the transfer destination memory specifiedby the identification information; and wherein the communication devicecomprises a second master for transferring the data stored in the memoryto the address area of the transfer destination memory specified by theidentification information and the address information when the data isdetected to be stored in the predetermined address area of the memory.4. The semiconductor device according to claim 3, wherein the pluralityof first masters are processors, and wherein the second master is a DMAcontroller controlled by the scheduling device.
 5. The semiconductordevice according to claim 3, further comprising: a control registerincluding a register in which the destination information is set.
 6. Thesemiconductor device according to claim 1, wherein the scheduling deviceselects and preferentially transfers, from among the data stored in eachsubdivided address area, data having a long residence time in atransmission buffer, data referred to by a task having a severe timingconstraint, and/or data referred to by a task having a high executionpriority, based on information provided from the access monitor circuit.7. A system comprising a plurality of semiconductor devices connected toeach other by a network, wherein each of the plurality of semiconductordevices comprises: a plurality of masters; a scheduling device connectedto the plurality of masters for controlling the plurality of masters toperform a plurality of tasks in real time; a memory accessed by theplurality of masters to store data by performing tasks; and an accessmonitor circuit monitoring access to the memory by the plurality ofmasters, wherein when the access to the memory is detected by the accessmonitor circuit in a first semiconductor device of the plurality ofsemiconductor devices, the data stored in the memory is transferred to amemory of a second semiconductor device specified by destinationinformation in the plurality of semiconductor devices, wherein the firstsemiconductor device has, as the destination information, 1)identification information specifying the second semiconductor devicefrom the plurality of semiconductor devices and 2) address informationspecifying a first address area of the second semiconductor device,wherein when the access monitor circuit detects that the data is storedin the memory in the first semiconductor device, the data stored in thememory in the first semiconductor device is transferred to the firstaddress area of the second semiconductor device, wherein the pluralityof semiconductor devices includes a third semiconductor device, whereinthe third semiconductor device has, as said destination information, 1)the identification information specifying the second semiconductordevice and 2) address information specifying a second address area ofthe memory of said second semiconductor device, and wherein when theaccess monitor circuit detects that the data is stored in the memory inthe third semiconductor device, the data stored in the memory in thethird semiconductor device is transferred to the second address area ofthe second semiconductor device specified by the destinationinformation.
 8. The system according to claim 7, wherein the pluralityof masters in the second semiconductor device performs tasks using thedata transferred from the first semiconductor device and the thirdsemiconductor device.
 9. The system according to claim 8, wherein thefirst semiconductor device further comprises a first communicationdevice comprising a master for transferring data between the network andthe memory of the first semiconductor device, wherein the secondsemiconductor device further comprises a second communication devicecomprising a master for transferring data between the network and thememory of the second semiconductor device, and wherein the thirdsemiconductor device further comprising a third communication devicecomprising a master for transferring data between the network and thememory of the third semiconductor device.
 10. The system according toclaim 8, further comprising a transmitting device connected to thenetwork for transmitting data to the first semiconductor device and thethird semiconductor device.
 11. The system according to claim 7, whereineach of the first semiconductor device and the third semiconductordevice further comprises a control register including a register inwhich the destination information is set.
 12. The system according toclaim 7, wherein the access monitor circuit in the second semiconductordevice provides, to the scheduled device in the second semiconductordevice, real-time information about an amount of the data that has beentransferred from the memory of the first semiconductor device to thefirst address area of the second semiconductor device.
 13. A systemcomprising a plurality of semiconductor devices connected to each otherby a network, wherein each of the plurality of semiconductor devicescomprises: a plurality of masters; a scheduling device connected to theplurality of masters for controlling the plurality of masters to performa plurality of tasks in real time; a memory accessed by the plurality ofmasters to store data by performing tasks; and an access monitor circuitmonitoring access to the memory by the plurality of masters, whereinwhen the access to the memory in a first semiconductor device of theplurality of semiconductor devices is detected by the access monitorcircuit, the data stored in the memory in the first semiconductor deviceis transferred to a memory of a second semiconductor device specified bydestination information in the plurality of semiconductor devices,wherein the first semiconductor device has, as the destinationinformation, 1) identification information specifying the secondsemiconductor device from the plurality of semiconductor devices and 2)address information specifying a first address area of the secondsemiconductor device, wherein when the access monitor circuit detectsthat the data is stored in the memory in the first semiconductor device,the data stored in the memory in the first semiconductor device istransferred to the first address area of the second semiconductordevice, and wherein when the access monitor circuit in the secondsemiconductor device detects access to the first address area, a stateof a control table holding 1) information indicating whether data to betransferred is stored and/or 2) information on an access time is updatedfor each address area obtained by subdividing the first address area.14. A system comprising a plurality of semiconductor devices connectedto each other by a network, wherein each of the plurality ofsemiconductor devices comprises: a plurality of masters; a schedulingdevice connected to the plurality of masters for controlling theplurality of masters to perform a plurality of tasks in real time; amemory accessed by the plurality of masters to store data by performingtasks; and an access monitor circuit monitoring access to the memory bythe plurality of masters, wherein when the access to the memory in afirst semiconductor device of the plurality of semiconductor devices isdetected by the access monitor circuit, the data stored in the memory inthe first semiconductor device is transferred to a memory of a secondsemiconductor device specified by destination information in theplurality of semiconductor devices, wherein the first semiconductordevice has, as the destination information, 1) identificationinformation specifying the second semiconductor device from theplurality of semiconductor devices and 2) address information specifyinga first address area of the second semiconductor device, wherein whenthe access monitor circuit detects that the data is stored in the memoryin the first semiconductor device, the data stored in the memory in thefirst semiconductor device is transferred to the first address area ofthe second semiconductor device, and wherein the scheduling device inthe second semiconductor device activates a task for referencing thedata transferred to the first address area based on information providedfrom the access monitor circuit, and/or changes a prioritization orderfor executing a task for referencing the data transferred to the firstaddress area based on information provided from the access monitorcircuit.